在 WooCommerce 中为特定邮政编码设置最低订购量
Posted
技术标签:
【中文标题】在 WooCommerce 中为特定邮政编码设置最低订购量【英文标题】:Set a minimum order amount for specific postcodes in WooCommerce 【发布时间】:2021-04-07 21:31:40 【问题描述】:以下代码基于 WooCommerce 的官方代码 sn-p 设置了最低要求的总金额,以便能够结帐:
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 )
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'
);
如何在 WooCommerce 中设置某个最低订单金额,但仅限于特定邮政编码?
感谢任何帮助。
【问题讨论】:
【参考方案1】:要在 WooCommerce 中为特定邮政编码设置最低订购量,请尝试以下操作:
add_action( 'woocommerce_checkout_process', 'wc_minimum_order_amount' );
add_action( 'woocommerce_before_cart' , 'wc_minimum_order_amount' );
function wc_minimum_order_amount()
$minimum = 50; // Set the minimum order value
$postcodes = array('99152', '99154'); // Define your targeted postcodes in the array
$postcode = ''; // Initializing
if ( isset($_POST['shipping_postcode']) && ! empty($_POST['shipping_postcode']) )
$postcode = $_POST['shipping_postcode'];
if ( empty($postcode) && isset($_POST['billing_postcode']) && ! empty($_POST['billing_postcode']) )
$postcode = $_POST['billing_postcode'];
elseif ( $postcode = WC()->customer->get_shipping_postcode() )
if ( empty($postcode) )
$postcode = WC()->customer->get_billing_postcode();
if ( WC()->cart->total < $minimum && ! empty($postcode) && in_array( $postcode, $postcodes ) )
$error_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 )
);
if( is_cart() )
wc_print_notice( $error_notice, 'error' );
else
wc_add_notice( $error_notice, 'error' );
代码进入活动子主题(或活动主题)的functions.php 文件中。经过测试并且可以工作。
【讨论】:
太棒了!在我的情况下,我实际上有两个具有不同最小订购量的邮政编码数组,我该如何实现呢?而且我所在国家/地区的邮政编码格式如下:1111 AA。但是该规则也应该适用于所有带有 1111 的邮政编码,无论后面的两个字母是什么。我将如何实现它?以上是关于在 WooCommerce 中为特定邮政编码设置最低订购量的主要内容,如果未能解决你的问题,请参考以下文章
在 Woocommerce 中为特定产品类别使用自定义单个产品模板
在 WooCommerce 中为特定用户角色创建订单时添加额外的客户注释
如何在 WooCommerce 中为未登录用户禁用特定插件?