php 使用woocommerce_calculate_totals钩子将“本地提货”运费设置为0

yzxexxkh  于 2023-01-12  发布在  PHP
关注(0)|答案(1)|浏览(85)

我们已经修改了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不会删除运费。
有什么我错过了吗?

but5z9lq

but5z9lq1#

您不需要任何代码...它可以通过WooCommerce设置完成。因此,您将在您的配送设置中为配送区域提供2种配送方式:

  • “当地递送”的“统一费率”配送方式(需付费)
  • “商店自提”的“当地自提”送货方式(免费)

对于“门店自提”(“本地自提”运输方式):

您将设置成本为0

然后您将进入购物车并结帐,如下所示:

相关问题