Установите минимальную стоимость заказа, только если купон не применен - PullRequest
0 голосов
/ 10 октября 2019

Я использую фрагмент, чтобы установить минимальную стоимость заказа в магазине WooCommerce. Однако у меня возникают некоторые проблемы при применении купона.

Например, минимальная стоимость заказа составляет 500, а клиент применяет купон со значением 500 - это даст промежуточный итог 0, и, следовательно, система выиграла 't разрешить покупателю покупать, потому что промежуточный итог меньше минимальной стоимости заказа.

Поэтому я пытаюсь переписать фрагмент минимальной стоимости заказа, чтобы он не устанавливал минимум при применении купона.

Проведя некоторое исследование, я обнаружил, что должен проверить, применяется ли купон, используя !empty($woocommerce->cart->applied_coupons). Тем не менее, это не похоже на работу. Что мне не хватает ??

// MINIMUM ORDER AMOUNT

add_action( 'woocommerce_checkout_process', 'wc_minimum_order_amount' );
add_action( 'woocommerce_before_cart' , 'wc_minimum_order_amount' );

function wc_minimum_order_amount() {
    // Set this variable to specify a minimum order value
    $minimum = 50;

    if ( (WC()->cart->total <= $minimum) && !empty($woocommerce->cart->applied_coupons) ) {

        if( is_cart() ) {

            wc_print_notice( 
                sprintf( 'Your current order total is %s — you must have an order with a minimum of %s to place your order ' , 
                    wc_price( WC()->cart->total ), 
                    wc_price( $minimum )
                ), 'error' 
            );

        } else {

            wc_add_notice( 
                sprintf( 'Your current order total is %s — you must have an order with a minimum of %s to place your order' , 
                    wc_price( WC()->cart->total ), 
                    wc_price( $minimum )
                ), 'error' 
            );

        }
    }
}

Ответы [ 2 ]

0 голосов
/ 10 октября 2019

Может быть, что-то подобное?

// MINIMUM ORDER AMOUNT

add_action( 'woocommerce_checkout_process', 'wc_minimum_order_amount' );
add_action( 'woocommerce_before_cart' , 'wc_minimum_order_amount' );

function wc_minimum_order_amount() {
    // Set variables
    $minimum = 500;
    global $woocommerce;

    if ( (WC()->cart->total <= $minimum) && isset($woocommerce->cart->applied_coupons) ) {

        if( is_cart() ) {

            wc_print_notice( 
                sprintf( 'NB! Vi sender ikke bestillinger ud under %s, din nuværende total er %s.' , 
                    wc_price( $minimum ), 
                    wc_price( WC()->cart->total )
                ), 'error' 
            );

        } else {

            wc_add_notice( 
                sprintf( 'NB! Vi sender ikke bestillinger ud under %s, din nuværende total er %s.' , 
                    wc_price( $minimum ), 
                    wc_price( WC()->cart->total )
                ), 'error' 
            );

        }
    }

}
0 голосов
/ 10 октября 2019

Вы можете рассчитать общую сумму заказа, равную , меньшую или равную минимальной сумме, если она возвращает значение true, означает, что общая сумма заказа составляет 500 или меньше 500, тогда вы можете отобразить сообщение об ошибке.

if ( (WC()->cart->total <= $minimum) && !empty($woocommerce->cart->applied_coupons) ) {
   // PRINT ERROR MESSAGE
} else {
   // DO YOUR CODE
}

Надеюсь, что это работает!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...