我们已经修改了Woocommerce中的结帐过程,允许客户选择送货或商店提货。
我正在使用woocommerce_calculate_totals来检查客户选择了哪种方法,如果用户选择了商店提货,我想将运费设置为0
我使用下面的代码。
add_action('woocommerce_calculate_totals', function($order) {
/*
* We need to check if the user selected local delivery, which would be added to the request string
* If no store pick-up is selected, then we don't need to display shipping calculations
*/
global $woocommerce;
if(!empty($_POST['post_data'])) {
if(strpos($_POST['post_data'], 'local-delivery')) {
} else {
$woocommerce->cart->shipping_total = 0.00;
$woocommerce->cart->shipping_tax_total = 0.00;
}
}
}, 40, 1);
如果用户选择本地配送,它会计算运费。但是,如果用户切换回提货,Woocommerce不会删除运费。
有什么我错过了吗?
1条答案
按热度按时间but5z9lq1#
您不需要任何代码...它可以通过WooCommerce设置完成。因此,您将在您的配送设置中为配送区域提供2种配送方式:
对于“门店自提”(“本地自提”运输方式):
您将设置成本为0:
然后您将进入购物车并结帐,如下所示: