Asociar un cupón a un correo y que funcione en WooCommerce

Tal y como expliqué en mi tutorial de cupones en WooCommerce, podemos asociar un cupón a un correo para que solo lo pueda canjear esa persona. El problema es que esta función lleva sin funcionar mucho tiempo en WooCommerce, cosa que personalmente no entiendo pero bueno. Al no funcionar cualquier persona puede canjear ese cupón aunque hayamos puesto un correo.

Como siempre este error se puede solucionar un un simple código. Puedes añadirlo en el functions.php de tu Child Theme o bien en tu plugin de funcionalidades como explico aquí.

add_filter( 'woocommerce_coupon_is_valid', 'dl_restriccion_cupones_emails', 10, 2 );

if ( ! function_exists( 'dl_restriccion_cupones_emails' ) ) {

	function dl_restriccion_cupones_emails( $result, $coupon ) {
		$user = wp_get_current_user();

		$restricted_emails = $coupon->get_email_restrictions();

		return ( in_array( $user->user_email, $restricted_emails ) ? $result : false );
	}
}

Con esto conseguimos de verdad restringirlo a ese correo en particular. Solo funcionará si el cliente está registrado con ese mail en nuestra tienda o bien si tiene el dato guardado en el checkout. Así que ya podremos hacer cupones a un usuario concreto en WooCommerce.

Tenéis otros tutoriales de cupones como quitar el aviso de cupones en la página de carrito y finalizar compra. Por último recordarte que puedes aprender todo lo que necesitas de WooCommerce con mi curso online.

¡Haz clic para puntuar esta entrada!
(Votos: 2 Promedio: 5)

Especialista en Comercio electrónico con Woocommerce. Te ayudo a crear, gestionar y publicitar tu Ecommerce en función de tu sector y público objetivo. Puedes encontrarme en Diegol.top

¿Necesitas ayuda con este tutorial? Mándame un correo y te resuelvo todas las dudas!


Ver servicios Curso de WooCommerce

También puedes suscribirte a mi newsletter para no perderte ninguna novedad

Reader Interactions

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *