Descuento de carrito por producto que cueste menos en Woocommerce

Descuento de carrito por producto que cueste menos en Woocommerce

¿Cómo puedo aplicar un descuento en el carrito de productos para productos que cuestan menos?

Por ejemplo:
Tengo dos productos en el carrito: uno cuesta 150 $ y otro 200 $. Me gustaría aplicar un 10 por ciento de descuento solo para el producto que cueste menos, en este caso el primero.

Tengo este código pero solo funciona para el segundo producto en el carrito:

add_filter( 'woocommerce_before_calculate_totals', 'discount_on_2nd_cart_item', 10, 1 );
function discount_on_2nd_cart_item( $cart_object ) {

    if ( is_admin() && ! defined( 'DOING_AJAX' ) )
        return;

    // Initialising
    $count = 0;
    $discount = 0.10; // 10 %
    $discounted = 0;
    // Iterating though each cart items
    foreach ( $cart_object->get_cart() as $cart_item ) {
        $count++;
        if( 2 == $count){ // Second item only
            $price = $cart_item['data']->get_price(); // product price
            $discounted_price = $price - ($price * $discount); // calculation
            $discounted = $price - $discounted_price;
            // Set the new price
            //$cart_item['data']->set_price( $discounted_price );
            break; // stop the loop
        }
    }

    $cart_object->add_fee( "Discount (10%) on second product", -$discounted, true );
}
Mostrar la mejor respuesta

¿Quieres aplicar el descuento en cualquier producto que tenga un precio de 200 $ o más?

en lugar de agregar la respuesta con Thank you, acepte la respuesta, que lo ayudó como respuesta correcta

Para las tarifas del carrito, debe usar woocommerce_cart_calculate_fees enlace dedicado de esta manera:

add_action('woocommerce_cart_calculate_fees', 'discount_on_cheapest_cart_item', 20, 1 );
function discount_on_cheapest_cart_item( $cart ) {
    if ( is_admin() && ! defined( 'DOING_AJAX' ) ) 
        return;

    // Only for 2 items or more
    if ( $cart->get_cart_contents_count() < 2 ) return;

    // Initialising
    $percentage = 10; // 10 %
    $discount = 0;
    $item_prices = array();

    // Loop though each cart items and set prices in an array
    foreach ( $cart->get_cart() as $cart_item ) {
        $product_prices_excl_tax[] = wc_get_price_excluding_tax( $cart_item['data'] );
    }
    sort($product_prices_excl_tax);

    $discount = reset($product_prices_excl_tax) * $percentage / 100;

    $cart->add_fee( "Discount on cheapest (".$percentage."%)", -$discount );
}

El código va en el archivo function.php de su tema secundario activo (o tema activo). Probado y funciona.