Я хочу применить скидку на 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();
}
}
}
Вы должны объединить эти условные выражения в одно всеобъемлющее утверждение:
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();
}
}
}
Других решений пока нет …