【问题标题】:How to set minimum order amount for WooCommerce excluding shipping?如何设置 WooCommerce 的最低订单金额(不包括运费)?
【发布时间】:2020-05-11 03:40:33
【问题描述】:

是否有代码可以设置 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' 
            );

        }
    }
}

【问题讨论】:

  • 您可以使用WC()-&gt;cart-&gt;get_shipping_total()从总成本中减去供应成本
  • 您可以将其发布为答案并包含完整代码吗?谢谢。

标签: woocommerce


【解决方案1】:

正如我在 cmets 中提到的,

您只需从购物车总额中减去运费即可。 您可以使用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' 
            );

        }
    }
}
?>

【讨论】:

  • 这段代码返回错误:Warning: A non-numeric value encountered in /home/dolcheam/public_html/wp-content/themes/dt-the7/functions.php on line 133这一行是133:if ( ($cart_total - $shipping_total) &lt; $minimum ) {
  • 您使用的是哪个版本的 Woocommerce?
  • Wordpress 5.2.2 和 Woocommerce 3.7.0
  • 我已经更新了代码,get_cart_total 是自动格式化价格,我们可以使用 -&gt;cart-&gt;total 就像你使用的那样,或者只是使用 get_cart_totals (null) 使其不格式化。
猜你喜欢
  • 2019-07-29
  • 1970-01-01
  • 2020-10-05
  • 2013-06-05
  • 1970-01-01
  • 2014-12-22
  • 2015-08-16
  • 2021-05-08
  • 2014-12-13
相关资源
最近更新 更多