Как установить минимальную сумму заказа для WooCommerce без учета доставки? - PullRequest
2 голосов
/ 24 января 2020

Есть ли код для установки минимальной суммы заказа для WooCommerce без учета доставки?

С помощью этого я могу установить минимальную сумму заказа, но с доставкой:

/**
 * Set a minimum order amount for checkout
 */
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 = 16;

    if ( WC()->cart->total < $minimum ) {

        if( is_cart() ) {

            wc_print_notice( 
                sprintf( 'Стойност на Вашата поръчка: %s <p>Минималната стойност на поръчката към ресторанта: %s' , 
                    wc_price( WC()->cart->total ), 
                    wc_price( $minimum )
                ), 'error' 
            );

        } else {

            wc_add_notice( 
                sprintf( 'Стойност на Вашата поръчка: %s <p>Минималната стойност на поръчката към ресторанта: %s' , 
                    wc_price( WC()->cart->total ), 
                    wc_price( $minimum )
                ), 'error' 
            );

        }
    }
}

1 Ответ

4 голосов
/ 25 января 2020

Как я уже упоминал в комментариях,

Вам просто нужно вычесть стоимость доставки из общей суммы корзины. Вы можете использовать метод WC_Cart::get_shipping_total.

Он должен выглядеть примерно так:

<?php
/**
 * Set a minimum order amount for checkout
 */
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 = 16;
    $cart_total = WC()->cart->total; // Cart total incl. shipping
    $shipping_total = WC()->cart->get_shipping_total();  // Cost of shipping
    if ( ($cart_total - $shipping_total) < $minimum ) {

        if( is_cart() ) {

            wc_print_notice( 
                sprintf( 'Стойност на Вашата поръчка: %s <p>Минималната стойност на поръчката към ресторанта: %s' , 
                    wc_price( WC()->cart->total ), 
                    wc_price( $minimum )
                ), 'error' 
            );

        } else {

            wc_add_notice( 
                sprintf( 'Стойност на Вашата поръчка: %s <p>Минималната стойност на поръчката към ресторанта: %s' , 
                    wc_price( WC()->cart->total ), 
                    wc_price( $minimum )
                ), 'error' 
            );

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