Индивидуальная скидка на каждый товар NTH в корзине

Я пришел сюда из этот вопрос здесь ищу решение для моего сайта WooCommerce. Я ищу способ получить скидку в своей корзине только на четное количество товаров в корзине.

Например:

Если в корзине только 1 товар: Полная цена
2 товаров в корзине: — (минус) 2 $ за оба
5 товаров в корзине: — (минус) 2 $ за 4 из этого (если в корзине нечетное количество товаров. 1 товар всегда будет иметь полную цену)

Кстати, все мои продукты имеют одинаковую цену.

Может ли кто-нибудь помочь мне в этом, так как кто-то помог парню по ссылке на вопрос, которую я упомянул?

1

Решение

Вот ваша пользовательская функция подключена woocommerce_cart_calculate_fees Хук действия, который будет делать то, что вы ожидаете:

add_action( 'woocommerce_cart_calculate_fees','cart_conditional_discount', 10, 1 );
function cart_conditional_discount( $cart_object ) {

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

$cart_count = 0;

foreach($cart_object->get_cart() as $cart_item){
// Adds the quantity of each item to the count
$cart_count += $cart_item["quantity"];
}

// For 0 or 1 item
if( $cart_count < 2 ) {
return;
}
// More than 1
else {
// Discount calculations
$modulo = $cart_count % 2;
$discount = (-$cart_count + $modulo);

// Adding the fee
$discount_text = __('Discount', 'woocommerce');
$cart_object->add_fee( $discount_text, $discount, false );
}
}

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

Этот код протестирован и работает.

2

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

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

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