簡體   English   中英

使用woocommerce_calculate_totals鈎子將“本地取件”運費設置為0

[英]Using woocommerce_calculate_totals hook to set “Local pickup” shipping cost to 0

我們修改了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不會消除運費。

有什么我想念的嗎?

您不需要任何代碼 ......可以通過WooCommerce設置完成。 因此,您的送貨設置中有2種送貨方式可用於送貨區域:

  • “本地送貨”的“統一費率”送貨方式(含費用)
  • “店鋪取貨”的“本地取件”送貨方式(免費)

對於“商店提貨”(“本地提貨”運輸方式):

在此輸入圖像描述

您將設置成本0

在此輸入圖像描述

然后你會進入購物車並結帳如下:

在此輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM