En WooCommerce, los cupones son una herramienta esencial para aumentar las ventas y fomentar la fidelidad de los clientes. Sin embargo, en algunos casos, es necesario restringir su uso para evitar abusos o aplicarlos únicamente en condiciones específicas. Una de las maneras más efectivas de hacerlo es excluyendo ciertos correos electrónicos del uso de un cupón. Excluir correos en un cupón de WooCommerce con código es una solución eficiente para lograr este objetivo. En este artículo, te explicaré cómo lograrlo mediante código personalizado en tu instalación de WordPress con WooCommerce.
¿Por qué Excluir Ciertos Correos del Uso de Cupones?
Existen diversas razones para querer excluir determinados correos electrónicos del uso de un cupón:
- Evitar que clientes ya beneficiados utilicen múltiples descuentos.
- Restringir el uso de cupones a clientes específicos.
- Implementar campañas de descuento dirigidas a usuarios nuevos o específicos.
Código para excluir correos electrónicos de cupones en WooCommerce
Para excluir ciertos correos electrónicos del uso de cupones en WooCommerce, puedes agregar el siguiente código en el archivo functions.php de tu tema hijo (acá te explico como crear un tema hijo en Hello Elementor) o en tu plugin personalizado:
add_filter('woocommerce_coupon_is_valid', function($valid, $coupon, $discount) {
// Lista de cupones a los que se aplicará la restricción
$restricted_coupons = array('CUPON10', 'DESCUENTO20');
// Lista de correos electrónicos a excluir
$excluded_emails = array(
'correo1@tudominio.com',
'correo2@tudominio.com'
);
// Verificar si el cupón está en la lista de cupones restringidos
if (!in_array($coupon->get_code(), $restricted_coupons)) {
return $valid;
}
// Obtiene el correo del usuario actual
if (is_user_logged_in()) {
$user_email = wp_get_current_user()->user_email;
} elseif (!empty($_POST['billing_email'])) {
$user_email = sanitize_email($_POST['billing_email']);
} else {
return $valid;
}
// Si el correo está en la lista de excluidos, el cupón no es válido
if (in_array($user_email, $excluded_emails)) {
wc_add_notice(__('Este cupón no está disponible para tu correo electrónico.', 'woocommerce'), 'error');
return false;
}
return $valid;
}, 10, 3);
¿Cómo Funciona este Código?
Este código funciona de la siguiente manera:
- Define una lista de cupones específicos a los que se aplicará la restricción.
- Define una lista de correos electrónicos excluidos.
- Detecta si el usuario está logueado y obtiene su correo, o bien, captura el correo ingresado en el formulario de pago.
- Si el correo está en la lista de excluidos y el cupón es uno de los restringidos, WooCommerce impide su uso y muestra un mensaje de error.
Nota: Al final del código puedes cambiar el mensaje de error que le va a salir a tus clientes, este caso, yo tengo este «Este cupón no está disponible para tu correo electrónico.»
Suscríbete y aprende gratis
¿Te apasiona el mundo web? Únete a la newsletter y recibe en tu correo un pequeño resumen donde hablo sobre WordPress, diseño y desarrollo web.
Ventajas de excluir correos en un cupón de WooCommerce con código
- Mayor control y personalización: Puedes ajustar el código según tus necesidades específicas.
- Evitas instalar más plugins: Reduciendo la carga en tu sitio web.
- Es gratuito: No necesitas adquirir una extensión de pago.
Excluir ciertos correos electrónicos del uso de cupones en WooCommerce puede ser una estrategia útil para gestionar tus descuentos de manera eficiente. Con el código proporcionado, puedes aplicar esta restricción solo a cupones específicos sin necesidad de instalar plugins adicionales aunque si prefieres una solución igual de sencilla pero sin tocar código, en este otro artículo te hablaré sobre un plugin que tienes disponible para gestionar las restricciones de cupones en WooCommerce.