This article proposes two scheduling algorithms based on the Distributed queuing collision avoidance MAC protocol for WLAN systems with heterogeneous voice and data traffic. The proposed schemes implement service differentiation and an opportunistic transmission policy by means of a PHY-MAC cross-layer dialog. In particular, transmissions are scheduled taking into account the service class, the state of the wireless channel, and the waiting time of messages at the MAC. Both schemes achieve significant performance improvement in terms of throughput and mean message delay, and increase the number of supported voice nodes in the system. The two mechanisms have different performance behavior as they present a trade-off between efficiency and fairness among the nodes. The obtained results emphasize the advantages of the proposed schemes and the importance of cross-layer design in wireless communication systems.