Код купона не удаляется после первого нажатия кнопки обновления корзины на странице корзины woocommerce

Я хочу применить скидку на 12 (количество) и удалить скидку ниже 12 (количество).
Я создал один код купона на скидку 20% («genew»). Я применил и удалил код купона, когда кто-то нажимал кнопку обновления корзины на странице корзины (woo-commerce). Функция удаления кода купона работает только тогда, когда кто-то нажимает кнопку обновления корзины два раза. одним первым щелчком мыши это не удалить код купона.

Вот функция, которую я использую в function.php

add_action('woocommerce_before_cart_table', 'discount_coupon');
function discount_coupon() {
global $woocommerce;
global $count_cart_quantity;
if ( $count_cart_quantity >= 12 ) {
$coupon_code = 'genew';
if (!$woocommerce->cart->add_discount(sanitize_text_field($coupon_code))) {
$woocommerce->show_messages();
}

}

if ( $count_cart_quantity < 12 && $count_cart_quantity > 1 ) {
$coupon_code = 'genew';
if (!$woocommerce->cart->remove_coupons(sanitize_text_field($coupon_code))) {
$woocommerce->show_messages();
}

}

}

0

Решение

Вы должны объединить эти условные выражения в одно всеобъемлющее утверждение:

add_action('woocommerce_before_cart_table', 'discount_coupon');
function discount_coupon() {
global $woocommerce;
global $count_cart_quantity;

$coupon_code = 'genew';

if ( $count_cart_quantity >= 12 ) {
if (!$woocommerce->cart->add_discount(sanitize_text_field($coupon_code))) {
$woocommerce->show_messages();
}
}
elseif ( $count_cart_quantity < 12 && $count_cart_quantity > 1 ) {
if (!$woocommerce->cart->remove_coupons(sanitize_text_field($coupon_code))) {
$woocommerce->show_messages();
}
}
}
0

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

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

По вопросам рекламы [email protected]