fbpx
Truco para aplicar una oferta 3×2 en WooCommerce

Truco para aplicar una oferta 3×2 en WooCommerce

En esta clase veremos cómo crear una oferta 3×2 en WooCommerce sin usar ningún plugin.

Con este truco podrás aplicar la oferta 3×2 de manera manual a un único producto para hacer un pequeño test de ventas para ver si este tipo de oferta 3×2 tiene respuesta.

Para aplicar la oferta de 3×2 a un producto individual de WooCommerce lo único que tienes que hacer es pegar el siguiente código snippet al final del fichero functions.php de tu plantilla.

👉Cómo añadir código a WordPress con un plugin de funciones

// Aplicar oferta 3x2 a un producto determinado
add_filter( 'woocommerce_cart_item_subtotal', 'aplicar_oferta_3x2', 10, 3 );
function aplicar_oferta_3x2( $subtotal, $cart_item, $cart_item_key ){

    $ofertaFinal = $subtotal;
    $cantidad = $cart_item[ 'quantity' ];

    if ( ( $cart_item[ 'product_id' ] === 54 ) && ( $cantidad >= 3 ) ) {
        
        $precioProducto = $cart_item[ 'data' ]->get_price();
        $precioProductoImpuestoIncl = $cart_item[ 'data' ]->get_price_including_tax();
        $descuento = floor( $cantidad / 3 ) * $precioProducto;
        $descuentoImpuestoIncl = floor( $cantidad / 3 ) * $precioProductoImpuestoIncl;

        // Calcula oferta para configuración de impuestos activa

        if ( WC()->cart->tax_display_cart == 'excl' ) {

            $oferta = $cart_item[ 'data' ]->get_price_excluding_tax( $cantidad ) - $descuento;
            $ofertaFinal = wc_price( $oferta );

            if ( WC()->cart->prices_include_tax && WC()->cart->tax_total > 0 ) {
                $ofertaFinal .= ' <small class="tax_label">' . WC()->countries->ex_tax_or_vat() . '</small>';
            }
        } else {

            $oferta = $cart_item[ 'data' ]->get_price_including_tax( $cantidad ) - $descuentoImpuestoIncl;
            $ofertaFinal = wc_price( $oferta );

            if ( ! WC()->cart->prices_include_tax && WC()->cart->tax_total > 0 ) {
                $ofertaFinal .= ' <small class="tax_label">' . WC()->countries->inc_tax_or_vat() . '</small>';
            }
        }

        // Actualiza subtotal del carrito
        if ( WC()->cart->tax_display_cart == 'excl' ) {
            
            WC()->cart->subtotal_ex_tax = WC()->cart->subtotal_ex_tax - $descuento;
        }else{

            WC()->cart->subtotal = WC()->cart->subtotal - $descuentoImpuestoIncl;
        }

        // Actualiza total del carrito
        WC()->cart->total = WC()->cart->total - $descuentoImpuestoIncl;
    }

    return $ofertaFinal;
}

// Actualiza los impuestos después de aplicar la oferta

add_filter( 'woocommerce_cart_tax_totals', 'actualiza_impuestos_aplicados', 10, 2 );
function actualiza_impuestos_aplicados( $tax_totals, $cartObject ){

    $impuestosDesc = 0;
    foreach ( $cartObject->get_cart() as $cart_item_key => $cart_item ){

        if ( ( $cart_item[ 'product_id' ] === 54 ) && ( $cart_item[ 'quantity' ] >= 3 ) ) {

            $impuestosDesc = ( $cart_item[ 'data' ]->get_price_including_tax() - $cart_item[ 'data' ]->get_price_excluding_tax() ) * floor( $cart_item[ 'quantity' ] / 3 );
        }
    }

    // Aplica descuento al desglose de impuestos mostrado debajo del total del carrito
    $newTaxTotal = current( $tax_totals );
    $clave = key( $tax_totals );
    $newTaxTotal->amount -= $impuestosDesc;
    $newTaxTotal->formatted_amount = wc_price( $newTaxTotal->amount );

    $tax_totals[ $clave ] = $newTaxTotal;

    return $tax_totals;
}

Fuente del código: Woodemia 

Prueba 12 clases gratis

 

1. Cómo contratar un hosting, instalar WordPress y acceder a tu web

2. Cómo buscar y elegir un theme para tu web

3. Cómo crear menús personalizados

4 Cómo personalizar páginas en WordPress con Gutenberg

5. Cómo instalar Divi y cargar diseño web en un par de clics. 

6. Qué es el email marketing y porqué debes usarlo

7. Cómo funciona el editor visual de MailerLite para crear tus campañas de email marketing

8. Cómo crear una tienda online profesional con Flatsome

9. Cómo crear una página web para inmobiliarias

10. Estrategias linkbuilding para mejorar el SEO

11. Cómo crear metadescripciones para atraer más clics a nuestra web.

12. Cómo conseguir suscriptores y contactos

Muchas gracias por suscribirte. Tendrás noticias mías por correo en breveRevisa, por favor, tu bandeja de spam o correo no deseado si en unos minutos no has recibido mi email.¡Seguimos!​David