Estás viendo

Aplicar un descuento al artículo de menor precio en el carrito de WooCommerce

Seguro que has presenciado en varias ocasiones en un supermercado una oferta que aplica un descuento al artículo más económico en tu carrito de compra.

/* Descuento del 50 por ciento al producto mas barato del carrito */
add_action('woocommerce_before_calculate_totals', 'nwp_producto_barato_carrito_mitad_precio', 9999);

function nwp_producto_barato_carrito_mitad_precio($cart) {
    if (is_admin() && !defined('DOING_AJAX')) return;
    if (did_action('woocommerce_before_calculate_totals') >= 2) return;
    if (count($cart - > get_cart()) < 2) return; // TIENE QUE HABER AL MENOS 2 PRODUCTOS EN EL CARRITO
    $min = PHP_FLOAT_MAX;
    // BUSCAMOS EN EL LOOP PARA ENCONTRAR EL MAS BARATO
    foreach($cart - > get_cart() as $cart_item_key => $cart_item) {
        if ($cart_item['data'] - > get_price() <= $min) {
            $min = $cart_item['data'] - > get_price();
            $cheapest = $cart_item_key;
        }
    }
    // BUSCAMOS EN EL CARRITO PARA DESCONTAR EL 50% AL PRODUCTO MAS BARATO
    foreach($cart - > get_cart() as $cart_item_key => $cart_item) {
        if ($cheapest == $cart_item_key) {
            $price = $cart_item['data'] - > get_price() / 2; //AQUI ES APLICAMOS EL DESCUENTO
            $cart_item['data'] - > set_price($price);
            $cart_item['data'] - > set_sale_price($price);
        }
    }
}

Herramientas

  • WooCommerce

    El plugin para crear tiendas online por excelencia. Tanto de productos físicos como digitales. Es la base para prácticamente cualquier proyecto web que acepte pagos online.