Cómo mostrar las condiciones de un cupón al cliente en WooCommerce

LucusHost, el mejor hosting

Aplicas un cupón en una tienda online y te sale un simple «Cupón aplicado correctamente». Nada más. ¿A qué productos afecta? ¿Hasta cuándo es válido? ¿Se puede combinar con otro cupón que ya tenías? Ni idea. Te enteras cuando revisas el total y algo no cuadra.

Ese vacío de información no es un detalle menor. Es una de esas fricciones pequeñas que, multiplicada por cientos de clientes, se traduce en tickets de soporte, carritos abandonados y valoraciones de «el descuento no me lo aplicó bien» o «no aplicó en la camiseta pero sí en la taza» que en realidad eran un cupón con restricciones que nadie explicó.

WooCommerce gestiona cupones con bastante flexibilidad: restricciones por categoría, por producto, importes mínimos y máximos, fechas de caducidad, envío gratuito, compatibilidad con otros cupones… El problema es que toda esa configuración vive en el panel de administración. El cliente, en la tienda, no ve nada de eso.

Y aquí está la clave: cuanto más específico es tu cupón, más necesita el cliente entender sus condiciones. Un cupón simple de «10% en todo el carrito» no genera dudas. Pero un cupón para «una categoría concreta(tazas), con importe mínimo, válido solo hasta fin de mes» sin ninguna explicación visible es una receta para la confusión.

Qué se puede hacer

La solución no requiere ningún plugin adicional. Con un fragmento de código en tu tema (o en un plugin de funciones a medida), puedes hacer que WooCommerce muestre, justo cuando el cliente aplica el cupón, un aviso con sus condiciones reales:

  • Fecha de caducidad.
  • Importe mínimo o máximo de compra.
  • Categorías o productos concretos a los que aplica.
  • Categorías o productos que quedan excluidos.
  • Si incluye envío gratuito.
  • Si se puede combinar con otros cupones.
cupon con condiciones mostrarlas woocommerce
Ejemplo para mostrar la aplicación en las siguientes imágenes

El aviso solo muestra lo que ese cupón en concreto tiene configurado. Si no hay restricción de categoría, esa línea no aparece — nada de listas genéricas que no aportan nada.

Por qué esto le conviene a tu tienda

No es solo un detalle estético. Tiene un efecto directo en varios puntos:

Menos soporte. Cada condición que el cliente ve por sí mismo es una pregunta menos que te llega por email o chat. «¿Por qué no me aplica el descuento?» es de las consultas más repetidas en cualquier tienda con cupones segmentados.

Menos fricción en el checkout. Cuando alguien entiende por qué un cupón no cubre todo su carrito, no lo interpreta como un fallo de la tienda. Lo interpreta como una condición razonable, visible desde el principio.

Más confianza. Una tienda que explica sus condiciones con claridad transmite algo distinto a una que oculta la letra pequeña hasta el momento del pago. Es una diferencia sutil, pero se nota en la percepción de marca.

Mejor para campañas segmentadas. Si usas cupones distintos según categoría, cliente nuevo o recurrente, fechas puntuales… cuanta más segmentación, más falta hace explicar las condiciones. Sin este aviso, la segmentación juega en tu contra en vez de a tu favor.

Cuándo merece la pena implementarlo

No todas las tiendas lo necesitan con la misma urgencia. Te interesa especialmente si:

  • Usas cupones con restricciones de categoría o producto (no solo descuentos generales).
  • Tienes fechas de caducidad ajustadas en tus promociones.
  • Recibes preguntas recurrentes sobre por qué un cupón «no funciona».
  • Combinas varios tipos de cupones (bienvenida, categoría, envío gratis) y quieres que el cliente distinga entre ellos.

Si tu tienda solo tiene un cupón general sin restricciones, el impacto será mínimo. Pero en cuanto empiezas a segmentar descuentos, esta pieza deja de ser un extra y pasa a ser casi una necesidad.

Por otro lado, esto tiene sus límites: el aviso es informativo como te muestro en las capturas del artículo. Muestra las condiciones del cupón, pero no comprueba si los productos que el cliente tiene en el carrito las cumplen realmente. Por ejemplo siguiendo la configuración del cupón de la imagen anterior, en la siguiente imagen tenemos una taza y una camiseta, pero el cupón TAZAS10 es solo para la categoría de tazas:

Vista desde el carrito clásico

Es decir, si el cupón solo aplica a una categoría concreta y el cliente tiene productos de otra categoría en el carrito, el mensaje le dirá cuáles son las condiciones — pero no le avisará explícitamente de que, tal como está su carrito en ese momento, el descuento no se aplicará a esos productos en concreto.

Esa sería una segunda capa, más avanzada: una validación activa que revise el carrito y señale qué productos concretos quedan fuera del cupón. Es un desarrollo distinto (y algo más complejo), pero completa perfectamente lo que este primer aviso ya resuelve.

¿Cómo implementarlo?

No necesitas ningún plugin de pago ni tocar archivos del core de WooCommerce. Basta con un fragmento de código que engancha al evento que se dispara cuando el cliente aplica el cupón (woocommerce_applied_coupon) y muestra un aviso con las condiciones que ese cupón tiene configuradas. Funciona tanto en el carrito por shortcode como el de bloques como muestro en las capturas.

Lo puedes añadir al functions.php de tu child theme o bien a tu plugin de funcionalidades como explico aquí. Este es el código completo:

add_action( 'wp_enqueue_scripts', 'dl_encolar_script_condiciones_cupon' );
function dl_encolar_script_condiciones_cupon() {
    if ( ! is_cart() ) {
        return;
    }

    wp_register_script( 'dl-cupon-condiciones', '', array( 'wp-data', 'wp-notices' ), '1.0.0', true );
    wp_enqueue_script( 'dl-cupon-condiciones' );

    $script = "
    ( function( wp ) {
        var subscribe = wp.data.subscribe;
        var select    = wp.data.select;
        var dispatch  = wp.data.dispatch;
        var cuponesMostrados = {};

        subscribe( function() {
            var cartStore = select( 'wc/store/cart' );
            if ( ! cartStore ) { return; }

            var cartData = cartStore.getCartData();
            if ( ! cartData || ! cartData.extensions || ! cartData.extensions['dl-coupon-details'] ) { return; }

            var condicionesPorCupon = cartData.extensions['dl-coupon-details'].condiciones;
            if ( ! condicionesPorCupon ) { return; }

            Object.keys( condicionesPorCupon ).forEach( function( codigo ) {
                if ( cuponesMostrados[ codigo ] ) { return; }
                var lineas = condicionesPorCupon[ codigo ];
                if ( ! lineas || ! lineas.length ) { return; }
                cuponesMostrados[ codigo ] = true;

                var texto = 'Condiciones del cupón \"' + codigo + '\": ' + lineas.join( ' ' );

                dispatch( 'core/notices' ).createNotice( 'info', texto, {
                    context: 'wc/cart',
                    id: 'dl-cupon-' + codigo,
                    isDismissible: true,
                } );
            } );

            Object.keys( cuponesMostrados ).forEach( function( codigo ) {
                if ( ! condicionesPorCupon[ codigo ] ) {
                    delete cuponesMostrados[ codigo ];
                }
            } );
        } );
    } )( window.wp );
    ";

    wp_add_inline_script( 'dl-cupon-condiciones', $script );
}

Una vez activo, no hace falta configurar nada más. En cuanto un cliente aplica un cupón en el carrito, junto al típico «Cupón aplicado correctamente» aparecerá un segundo aviso con la lista de condiciones que ese cupón en concreto tiene activas. Si el cupón no tiene restricciones especiales, simplemente no se muestra nada adicional.

Vista desde el carrito de bloques

Dos detalles prácticos:

  • El aviso se dispara con woocommerce_applied_coupon, así que funciona igual si el cliente aplica el cupón desde el carrito o desde el checkout.
  • El HTML del mensaje (la lista <ul>) se muestra sin problema porque wc_add_notice() lo sanea automáticamente con wp_kses_post. No necesitas nada extra para que se vea bien.

Como conclusión, mostrar las condiciones de un cupón en el momento en que se aplica es una de esas mejoras que cuestan poco implementar y que el cliente nota de inmediato. No cambia tu estrategia de descuentos ni tu configuración de cupones — simplemente hace visible lo que ya tenías configurado, en el momento en que más importa: justo cuando el cliente decide si su compra le compensa o no.

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

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 realizar una donacion para seguir apoyando la salida de nuevos tutoriales y actualizaciones

Reader Interactions

Deja una respuesta

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