Процентная скидка только на промежуточный итог не в продаже в Woocommerce

Существует отличный ответ на скидку, основанную на количестве не в продаже товаров но если в списке есть один товар в продаже, он не работает для всех других товаров, которые не продаются …

Мой вопрос: как я могу сделать скидку только на «товары, которые не продаются», если у меня есть «товары в продаже» в том же списке корзины?

1

Решение

обновленный — Попробуйте это вместо этого:

add_action('woocommerce_cart_calculate_fees' , 'custom_cart_discount', 20, 1);
function custom_cart_discount( $cart ){

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

// Limitations: Only when there is 5 or more non on sale items in cart
$starting_limit = 5;

// Initialising variables
$not_on_sale_subtotal = $discount = $items_count = 0;

// Iterating through each item in cart
foreach( $cart->get_cart() as $cart_item ){

// For cart items is not on sale
if( ! $cart_item['data']->is_on_sale() ){
$not_on_sale_subtotal += (float) $cart_item['line_subtotal'];
$items_count += $cart_item['quantity'];
}
}

// Discount calculation
$discount = $not_on_sale_subtotal * 0.1;

// Applied discount only cart items that are not on sale
if( $discount && $items_count >= $starting_limit )
$cart->add_fee( 'Special discount', -$discount );

}

Код помещается в файл function.php вашей активной дочерней темы (или активной темы). Должно работать

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector