2017-04-11 121 views
1

我正在創建一個處理WooCommerce裝運和交付的Wordpress插件。如何以編程方式設置WooCommerce的裝運量

我想簡單地告訴我的WooCommerce cart(或order),這是什麼運費是。

我曾嘗試直接設置WC()->cart->shipping_amount = $amount;
也做在這兩種情況下對車的shipping_amount保持在0->add_fee($shippingServiceName, $amount);

如何設置運費?

+0

由於某種原因,我不知道...我似乎無法找到'WC() - > cart-> shipping_amount',但只有'WC() - > cart-> shipping_total' – Reigel

回答

4

我結束了直接的數量級上,而不是放在車上設置它;
這裏是我創建,並在我的「完成購買」處理中使用的方法:

function addShippingToOrder($order, $shipping_amount, $shipping_name) { 

     $shipping_tax = array(); 
     $shipping_rate = new WC_Shipping_Rate('', $shipping_name, 
             $shipping_amount, $shipping_tax, 
             'custom_shipping_method'); 
     $order->add_shipping($shipping_rate); 

} 

我還需要保留運輸量,當我在車邏輯,然後當檢索我是在順序邏輯,而我做了一個自定義的車「會話」變量:
WC()->session->set('my_custom_shipping_amount', $amt);
WC()->session->get('my_custom_shipping_amount')


這是一個非常簡單的答案,但我花了最長的時間來弄清楚 - 我甚至結束了創建一個插件,特別是用於調試修改WC_Orders:WooCommerce Order Debugger Plugin

1

嘗試下面的代碼

add_filter('woocommerce_package_rates', 'apply_static_rate', 10, 2); 
function apply_static_rate($rates, $package) 
    {     
     foreach($rates as $key => $value) { 
      $rates[$key]->cost = 150; // your amount     

     } 
     return $rates; 
} 
相關問題