我需要根据购物车/订单中的内容修改送货方式的费用。 必须在购物车页面和结帐页面上计算成本,当然也可以在订单完成时保存。
这就是我所做的,但它似乎没有效果,有人有想法吗?
add_filter('woocommerce_package_rates','over_cost',100,2);
function over_cost($rates,$package) {
global $woocommerce;
$items = $woocommerce->cart->get_cart();
$qty=0;
foreach($items as $item => $values) {
$_product = $values['data']->post;
$qty= $qty + $values['quantity'];
}
foreach ($rates as $rate) {
if ($rate->cost=='flat_rate:4') {$rate->cost = 5*$qty;}
}
return $rates;
}
答案 0 :(得分:0)
add_filter('woocommerce_package_rates','test_overwrite_fedex',100,2);
function test_overwrite_fedex($rates,$package) {
foreach ($rates as $rate) {
//Set the price
$rate->cost = 1000;
//Set the TAX
$rate->taxes[1] = 1000 * 0.2;
}
return $rates;
}
Woocommerce使用wordpress transient功能缓存这些费率。因此,当您进行测试时,请确保更改项目数量以便正确更新包裹费率,或者每次刷新时都可以清空购物车:)