2014-11-06 69 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; 
}