Change Woo-commerce shipping price based on cart product

Put below code in functions.php

function aviweb_flat_rates_cost( $rates, $package ) {

foreach( WC()->cart->get_cart() as $cart_item_key => $values ) {

$_product = $values[‘data’];

if($_product->id == 123){

$rates[‘flat_rate:2’]->cost = 0;

}

}

return $rates;

}
add_filter( ‘woocommerce_package_rates’, ‘aviweb_flat_rates_cost’, 10, 2 );

Advertisements