仅在未应用优惠券的情况下设置最低订单价值

时间:2019-10-10 12:55:12

标签: php wordpress plugins woocommerce hook-woocommerce

我正在使用一个代码段设置WooCommerce商店的最低订单价值。但是,如果应用优惠券,我会遇到一些问题。

例如,最小订单价值为500,客户应用了价值为500的优惠券-这将使小计0,因此系统将不允许客户购买,因为小计小于最小订单价值

因此,我正在尝试重写最小订单价值代码段,以便在应用优惠券时不会设置最低要求。

经过一些研究,我发现我应该使用!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 :(得分:0)

您可以计算出订单总金额小于或等于最低金额,如果返回true表示订单总金额为500或小于500,那么您将显示错误消息。

>
hostvars[groups['myHosts'][1]]['b']

希望它能起作用!

答案 1 :(得分:0)

也许是这样吗?

// 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' 
            );

        }
    }

}