2014-11-06 84 views
1

我試圖實現以下與Woocommerce的開箱即用版本沒有任何插件。統一費率航運類 - Woocommerce

三送貨選項:

禮品卡只 - £3.00 小型封裝 - £5.00 大包 - £10.00

現在上述需要按以下格式進行設置: - 單卡將是£1.50 - 1-2產品將是£5.00 - 3或更多產品將是£10.00郵資。

附加費用目前:

Flat rate - £5.00 

Gift Card Only | -3.50| order 
Large Package |10 | order 

我已經試過配置上述與航運類和使用附加費率。但是看不到在籃子內輸入閾值的邏輯。任何人都遇到了這樣做的好方法?

乾杯, 丹

+0

它看起來並不像扁平率送貨function.php代碼允許定義每個選項最低數量。你應該尋找允許的擴展或者考慮編寫你自己的修改。此外,如果我瞭解您的定價選項是正確的,那麼在7張卡下購買時,它們的價值將分別購買。這似乎適得其反。 – MSTannu 2014-11-06 16:46:25

回答

0

您可以通過過濾器'woocommerce_package_rates'來實現此Woocommerce固定費率。

該過濾器有兩個參數,available_shipping_methods和包。該軟件包包含購物車中所有物品的所有信息。

您可以用這種方式

add_filter('woocommerce_package_rates', 'alter_shipping_charge', 10, 2); 

function alter_shipping_charge($available_shipping_methods, $package){ 
    $shipping_class_arr = array(); 
    foreach ($package['contents'] as $key => $item) { 
     $shipping_class_arr[] = ['data']->get_shipping_class(); 
    } 
    //do something here with $shipping_class_arr and $available_shipping_methods 

    return $available_shipping_methods; 
}