Ограничить корзину, чтобы использовать только 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 вашей активной дочерней темы (активной темы). Протестировано и работает.

Другие вопросы по тегам