Ограничить корзину, чтобы использовать только 1 купон - woocommerce
Как я могу ограничить свой купон, чтобы клиент не мог использовать несколько купонов для одной и той же проверки?
Я использую WP Woocommerce 4.2.2
2 ответа
Решение
Вы можете сделать это, активировав опцию Только для индивидуального использования в форме редактирования купона. Это заблокирует использование дополнительных купонов.
Для получения дополнительной информации проверьте официальную документацию.
Следующий код удалит первый примененный купон, если клиент применит другой код купона, поэтому в корзине будет только один примененный купон (последний примененный купон) :
add_action( 'woocommerce_before_calculate_totals', 'one_applied_coupon_only', 10, 1 );
function one_applied_coupon_only( $cart ) {
if ( is_admin() && ! defined( 'DOING_AJAX' ) )
return;
if ( did_action( 'woocommerce_before_calculate_totals' ) >= 2 )
return;
// For more than 1 applied coupons only
if ( sizeof($cart->get_applied_coupons()) > 1 && $coupons = $cart->get_applied_coupons() ){
// Remove the first applied coupon keeping only the last appield coupon
$cart->remove_coupon( reset($coupons) );
}
}
Код находится в файле function.php вашей активной дочерней темы (активной темы). Протестировано и работает.