分享笔记:

WooCommerce设置最低订单金额

设置个“起拍价”

文章目录

在之前的笔记里,我们聊过怎么根据不同的标准(如产品数量,库存少时,甚至根据国家或用户角色)设定WooCommerce里的最小订单量。但是我们并没有说怎么设定订单的最低金额(其实算有,只不过是通过第三方插件),并且只有在订单金额超过最低金额时才能完成购买。

今天我们就来实现这个功能,它非常简单,只需要添加几行代码即可。

设置最小购买金额代码

/* 设置最小购买金额 */
function woocommerce_importe_minimo() {
$minimum = 650; // 650换成你想要的金额
if ( WC()->cart->total < $minimum ) {
if( is_cart() ) {
wc_print_notice(
sprintf( ' You must place a minimum order of %s to complete your purchase.' , // 这里你可以写在购物车当没有达到金额要求的文字提醒.
wc_price( $minimum ),
wc_price( WC()->cart->total )
), 'error'
);
} else {
wc_add_notice(
sprintf( 'You cannot finalize your purchase. You must place a minimum order of %s to complete your purchase.' , // 这里你可以写在结算界面当没有达到金额要求的文字提醒.
wc_price( $minimum ), 
wc_price( WC()->cart->total )
), 'error'
);
}
}
}
add_action( 'woocommerce_checkout_process', 'woocommerce_importe_minimo' );
add_action( 'woocommerce_before_cart' , 'woocommerce_importe_minimo' );

你可以使用自己喜欢的方法将这些代码添加到你的主题的functions.php文件里或者用代码插件

取消本地自取的价格限制

想象一下你在WooCommerce上设置了一个最低订单金额,但是,如果你有某种不需要设定最低订单金额的配送方式呢?

比如你的店铺有本地自提的配送方式,这种情况下通常不会有什么价格限制的,毕竟都让客户亲自到店里取货了。设定一个最低订单金额通常是因为配送成本或盈利性问题,所以在自取上面加限制显然没有什么意义。

如果你不知道我在说什么,可以看看我之前写的WooCommerce运费设置或者根据产品最终重量计算运费

/* 本地自取无价格限制 */
add_action( 'woocommerce_checkout_process', 'wc_minimum_required_order_amount' );
add_action( 'woocommerce_before_cart' , 'wc_minimum_required_order_amount' );
function wc_minimum_required_order_amount() {
// 自定义设置
$minimum_amount = 450; // 购物车所需最低金额
$shipping_method_id = 'local_pickup'; // 店铺自取ID
// Variables
$cart_total = (float) WC()->cart->total;
$chosen_methods = (array) WC()->session->get( 'chosen_shipping_methods' );
// 仅当选择运输方式时
if ( ! empty($chosen_methods) ) {
$chosen_method = explode(':', reset($chosen_methods));
$chosen_method_id = reset($chosen_method);
}
// 如果选择本地取货作为运输方式,没有最低订单要求。
if ( isset($chosen_method_id) && $chosen_method_id === $shipping_method_id ) {
return; // exit
}
// 如果购物车总数小于所需的最小值,出现错误通知
if ( $cart_total < $minimum_amount ) {
$text_notice = sprintf(
__("所需的最低订单金额为 %s(当前的订单金额为 %s).", "woocommerce"), // 通知文字
wc_price( $minimum_amount ),
wc_price( $cart_total )
);
if ( is_cart() ) {
wc_print_notice( $text_notice, 'error' );
} else {
wc_add_notice( $text_notice, 'error' );
}
}
}

保存运行代码后,从现在开始,根据示例代码的设置,如果客户下的订单低于 450 ,他们会显示一条错误消息,并且无法完成订单,除非他们选择的运输方式是本地取货 (local_pickup),那样就不会有最低订购量的限制了。

为笔记评分

平均评分 5 / 5. 摘星者: 1

有疑问?留个言吧!

更多结果...

Generic selectors
Exact matches only
Search in title
Search in content
Post Type Selectors

更多结果...

Generic selectors
Exact matches only
Search in title
Search in content
Post Type Selectors