Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php wordpress woocommerce(2.6.9)凌驾于配送之上_Php_Wordpress_Woocommerce_Shipping - Fatal编程技术网

Php wordpress woocommerce(2.6.9)凌驾于配送之上

Php wordpress woocommerce(2.6.9)凌驾于配送之上,php,wordpress,woocommerce,shipping,Php,Wordpress,Woocommerce,Shipping,我需要在结帐时从外部系统动态获取运费。我已经访问了api,在变量中有成本,现在想用这些新的“覆盖”来自woocommerce的成本 我正在和woocommerce\u package\u rates挂钩,但似乎无法让它发挥作用。在下面的示例中,为了简单起见,我刚刚将变量替换为数字(100)。有什么想法吗 function flat_rates_cost( $rates, $package ) { if ( isset( $rates['flat_rate:5'] ) ) {

我需要在结帐时从外部系统动态获取运费。我已经访问了api,在变量中有成本,现在想用这些新的“覆盖”来自woocommerce的成本

我正在和woocommerce\u package\u 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 );

我可以把一个完全相同的场景联系起来。如果你仔细阅读那篇文章,它将描述你如何运用自己的逻辑改变统一费率。

摘自我的答案:)
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 );