wordpress woocommerce(2.6.9)覆盖运输

wordpress woocommerce (2.6.9) override shipping

我需要在结帐时从外部系统动态获取运费。我已经访问了 api 并获得了变量成本,现在想要 'overwrite' 这些新成本来自 woocommerce。

我正在连接到 woocommerce_package_rates 挂钩,但似乎无法让它工作。在下面的示例中,为了简单起见,我只是将变量换成数字 (100)。有什么想法吗?

function flat_rates_cost( $rates, $package ) {
    if ( isset( $rates['flat_rate:5'] ) ) {
        $rates['flat_rate:5']->cost = 100;
    }
    return $rates;
}
add_filter( 'woocommerce_package_rates', 'flat_rates_cost', 10, 2 );

我可以将 article 与完全相同的场景联系起来。如果您阅读了那篇文章,它将向您介绍如何应用您自己的逻辑来更改统一费率。

function flat_rates_cost( $rates, $package ) {
    foreach($rates as $key  => $rate){
                 // Put your desired slug here for API service
        if($rate->method_id ==  'flat_rate'){
            //  modify the value here
            $rates[$key]->cost  =   25;
        }
    }
    return $rates;
}
add_filter( 'woocommerce_package_rates', 'flat_rates_cost', 10, 2 );