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:

  1. Ve a WooCommerce > Marketing > Cupones.
  2. Haz clic en Añadir cupón.
  3. Ingresa un código (por ejemplo, DESCUENTO10).
  4. Configura el descuento y las restricciones según tus necesidades.
  5. 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:

  1. Cuando el usuario agrega un producto específico al carrito.
  2. Cuando el usuario alcanza un monto mínimo de compra.
  3. Cuando el usuario accede desde una URL con un parámetro especial.
  4. 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

 

Para hacerlo, agregamos este código:
<?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:

0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Back to Top
0
Would love your thoughts, please comment.x
()
x