
Cómo aplicar cupones automáticamente en WooCommerce
Los cupones son una excelente forma de incentivar ventas en una tienda WooCommerce. Sin embargo, pedir a los clientes que ingresen un código manualmente puede generar fricción en el proceso de compra. En este artículo, te mostraremos cómo aplicar cupones automáticamente en WooCommerce usando hooks.
Antes de comenzar: crea el cupón en WooCommerce
Antes de aplicar un cupón automáticamente, primero debes crearlo manualmente en WooCommerce. Para hacerlo:
- Ve a WooCommerce > Marketing > Cupones.
- Haz clic en Añadir cupón.
- Ingresa un código (por ejemplo,
DESCUENTO10
). - Configura el descuento y las restricciones según tus necesidades.
- Guarda los cambios.
Una vez creado el cupón, podemos aplicarlo automáticamente con código.
Métodos para aplicar cupones automáticamente
Existen diferentes escenarios en los que podríamos querer aplicar un cupón automáticamente:
- Cuando el usuario agrega un producto específico al carrito.
- Cuando el usuario alcanza un monto mínimo de compra.
- Cuando el usuario accede desde una URL con un parámetro especial.
- Aplicar un cupón automáticamente a toda la tienda.
Veamos cómo implementar cada uno de estos métodos.
1. Aplicar un cupón cuando se agrega un producto al carrito
Si queremos aplicar un cupón cuando el usuario agrega un producto específico, podemos utilizar el hook woocommerce_add_to_cart
.
<?php function applyCouponOnAddToCart( $cartItemKey, $productId, $quantity, $variationId, $cart ) { $couponCode = 'DISCOUNT10'; // Reemplaza con tu cupón if ( ! $cart->has_discount( $couponCode ) ) { $cart->apply_coupon( $couponCode ); } } add_action( 'woocommerce_add_to_cart', 'applyCouponOnAddToCart', 10, 5 );
Explicación
- Este código verifica si el cupón no ha sido aplicado aún y lo agrega cuando se añade un producto al carrito.
2. Aplicar un cupón si el total del carrito supera un monto específico
Si queremos aplicar el cupón cuando el carrito alcance un monto determinado, podemos usar el hook woocommerce_before_calculate_totals
.
<?php function applyCouponOnCartTotal( $cart ) { if ( is_admin() && ! defined( 'DOING_AJAX' ) ) { return; } $couponCode = 'DISCOUNT15'; // Reemplaza con tu cupón $minimumTotal = 100; // Monto mínimo en la moneda de la tienda if ( $cart->subtotal >= $minimumTotal && ! $cart->has_discount( $couponCode ) ) { $cart->apply_coupon( $couponCode ); } } add_action( 'woocommerce_before_calculate_totals', 'applyCouponOnCartTotal' );
Explicación
- Si el subtotal del carrito supera
$minimumTotal
, se aplica el cupón automáticamente.
3. Aplicar un cupón cuando el usuario accede desde una URL especial
Podemos permitir que los clientes activen un cupón mediante una URL especial, por ejemplo:
https://tudominio.com/tienda/?apply_coupon=DISCOUNT20
<?php function applyCouponFromUrl() { if ( isset( $_GET['apply_coupon'] ) ) { $couponCode = sanitize_text_field( $_GET['apply_coupon'] ); if ( WC()->cart && ! WC()->cart->has_discount( $couponCode ) ) { WC()->cart->apply_coupon( $couponCode ); wc_add_notice( '¡Cupón aplicado exitosamente!', 'success' ); } } } add_action( 'wp_loaded', 'applyCouponFromUrl' );
Explicación
- Se detecta si hay un parámetro
apply_coupon
en la URL y se aplica automáticamente. - Se muestra un mensaje en la tienda indicando que el cupón fue agregado.
4. Aplicar un cupón automáticamente a toda la tienda
Si queremos que un cupón se aplique siempre que haya un carrito activo, sin importar qué productos se agreguen o el total del carrito, podemos hacer lo siguiente:
<?php function applyCouponOnEveryCart( $cart ) { if ( is_admin() && ! defined( 'DOING_AJAX' ) ) { return; } $couponCode = 'GLOBALDISCOUNT'; // Reemplaza con tu cupón if ( ! $cart->has_discount( $couponCode ) ) { $cart->apply_coupon( $couponCode ); } } add_action( 'woocommerce_before_calculate_totals', 'applyCouponOnEveryCart' );
Explicación
- Se aplica el cupón a todos los carritos activos sin restricciones.
- Si el cupón ya está aplicado, no se vuelve a agregar.
Aplicar cupones automáticamente en WooCommerce mejora la experiencia del usuario y puede aumentar la conversión. Puedes usar estos métodos según tus necesidades: