2017-08-05 231 views
1

在Woocommerce中,我已經安裝了運輸插件,但它計算的是每個商品在購物車中的運費,而不是每個訂單的總數。在WooCommerce中設置按購物車總重量計算的自定義運費費用

我需要的是這種方式來計算運費: - 首先是5美元 - 對於所有其他人,每公斤爲1美元。

是否可以做到這一點?

隨着如果在每個1千克車2項插件,它計算的運費爲2 x $ 5 = $ 10
相反,我應該需要的是:$ 5(第一千) + $ 1(額外公斤) = $ 6(對於2公斤)

我沒有迴應插件開發人員,所以尋找工作。

+0

您可以顯示您嘗試過的工作嗎? – MinistryofChaps

+0

我正在尋求解決方法或解決方案。我要求代碼添加到我的plugin.php,以便購物車提交爲總計。謝謝 – linda

+0

oops,我的問題發生了什麼 - 某人編輯了它?我現在無法理解編輯。我想知道如何讓我的插件根據購物車中的總重量計算出貨量,而不是購物車中的每種商品。 – linda

回答

1

更新:你不需要任何插件(這樣你就可以將其刪除)

要獲得總車重計算的航運率,具有:

  • 的$ 5中的初始量(對於第一公斤)爲每個附加公斤
  • $ 1
  • 可變速率

執行以下操作:

1)設置在WooCommerce:
對於所有的「固定費率」航運法(每個航運區),設置1(量公斤)成本

enter image description here

所以成本

(一旦完成禁用/保存並啓用/保存刷新woocommerce瞬態高速緩存)

2)自定義代碼(由於運輸單位成本爲1美元/公斤,因此我們在計算總共購物車重量時增加了4公斤rrect費用)

add_filter('woocommerce_package_rates', 'custom_delivery_flat_rate_cost_calculation', 10, 2); 
function custom_delivery_flat_rate_cost_calculation($rates, $package) 
{ 
    // The total cart items weight 
    $cart_weight = WC()->cart->get_cart_contents_weight(); 

    foreach($rates as $rate_key => $rate_values){ 
     $method_id = $rate_values->method_id; 
     $rate_id = $rate_values->id; 
     if ('flat_rate' === $method_id) { 
      ## SHIPPING COSTS AND TAXES CALCULATIONS ## 
      $rates[$rate_id]->cost = $rates[$rate_id]->cost*($cart_weight+4); 
      foreach ($rates[$rate_id]->taxes as $key => $tax){ 
       if($rates[$rate_id]->taxes[$key] > 0){ 
        $tax_cost = number_format($rates[$rate_id]->taxes[$key]*($cart_weight+4)); 
        $rates[$rate_id]->taxes[$key] = $tax_cost; 
       } 
      } 
     } 
    } 
    return $rates; 
} 

代碼放在您的活動子主題(或主題的function.php文件),或者也可以任何插件文件。

此代碼已經過測試,適用於woocommerce版本2.6。x和3+

+0

謝謝您的建議。我們使用插件的原因是,有很多變量來計算基於重量和位置的運輸價格,並提供多種服務,例如過夜,道路等,這些都是在API中定義的 - 不確定是否得到這個正確... – linda

+0

我想插入當前代碼的外觀如何插入圖像 - 我如何插入圖像(ctrl G不工作.. – linda

+0

@ linda我選擇了一個插件,你是插件允許的囚犯一般情況下這是封閉的,所以使用這個插件不會讓你得到你想要的東西......在這種情況下,沒有人會真正幫助你。 – LoicTheAztec

相關問題