如何在woocommerce中动态修改运费选项价格?

时间:2017-05-09 09:48:16

标签: woocommerce

我需要根据购物车/订单中的内容修改送货方式的费用。 必须在购物车页面和结帐页面上计算成本,当然也可以在订单完成时保存。

这就是我所做的,但它似乎没有效果,有人有想法吗?

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;
}

1 个答案:

答案 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功能缓存这些费率。因此,当您进行测试时,请确保更改项目数量以便正确更新包裹费率,或者每次刷新时都可以清空购物车:)