Я пришел сюда из этот вопрос здесь ищу решение для моего сайта WooCommerce. Я ищу способ получить скидку в своей корзине только на четное количество товаров в корзине.
Например:
Если в корзине только 1 товар: Полная цена
2 товаров в корзине: — (минус) 2 $ за оба
5 товаров в корзине: — (минус) 2 $ за 4 из этого (если в корзине нечетное количество товаров. 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 вашей активной дочерней темы (или темы) или также в любой файл плагина.
Этот код протестирован и работает.
Других решений пока нет …