I need to dynamically get shipping costs at checkout from an external system. I’ve accessed the api and have the costs in variables and now want to ‘overwrite’ the costs coming from woocommerce with these new ones.

I’m hooking into the woocommerce_package_rates hook but don’t seem to be able to get it to work. In the example below, I’ve just swapped out the variable for a number (100) for simplicity. Any ideas?

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

Read more here: wordpress woocommerce (2.6.9) override shipping


If you know the solution of this issue, please leave us a reply in Comment section, to update the question.

Wordpress related questions and answers: