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