在WooCommerce中设置按购物车总重量计算的自定义运费费用
在Woocommerce中,我已经安装了运输插件,但它计算的是每个商品在购物车中的运费,而不是每个订单的总数。在WooCommerce中设置按购物车总重量计算的自定义运费费用
我需要的是这种方式来计算运费: - 首先是5美元 - 对于所有其他人,每公斤为1美元。
是否可以做到这一点?
随着如果在每个1千克车2项插件,它计算的运费为2 x $ 5 = $ 10
相反,我应该需要的是:$ 5(第一千) + $ 1(额外公斤) = $ 6(对于2公斤)。
我没有回应插件开发人员,所以寻找工作。
更新:你不需要任何插件(这样你就可以将其删除)。
要获得总车重计算的航运率,具有:
- 的$ 5中的初始量(对于第一公斤)为每个附加公斤 $ 1
- 可变速率
执行以下操作:
1)设置在WooCommerce:
对于所有的“固定费率”航运法(每个航运区),设置1
(量公斤)成本。
所以成本
(一旦完成禁用/保存并启用/保存刷新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+
谢谢您的建议。我们使用插件的原因是,有很多变量来计算基于重量和位置的运输价格,并提供多种服务,例如过夜,道路等,这些都是在API中定义的 - 不确定是否得到这个正确... – linda
我想插入当前代码的外观如何插入图像 - 我如何插入图像(ctrl G不工作.. – linda
@ linda我选择了一个插件,你是插件允许的囚犯一般情况下这是封闭的,所以使用这个插件不会让你得到你想要的东西......在这种情况下,没有人会真正帮助你。 – LoicTheAztec
您可以显示您尝试过的工作吗? – MinistryofChaps
我正在寻求解决方法或解决方案。我要求代码添加到我的plugin.php,以便购物车提交为总计。谢谢 – linda
oops,我的问题发生了什么 - 某人编辑了它?我现在无法理解编辑。我想知道如何让我的插件根据购物车中的总重量计算出货量,而不是购物车中的每种商品。 – linda