add_filter( 'woocommerce_package_rates', 'c2code_hide_free_shipping_for_shipping_class', 9999, 2 );
function c2code_hide_free_shipping_for_shipping_class( $rates, $package ) {
$shipping_class_target = 61; // shipping class ID
$in_cart = false;
foreach ( WC()->cart->get_cart_contents() as $key => $values ) {
if ( $values[ 'data' ]->get_shipping_class_id() == $shipping_class_target ) {
$in_cart = true;
break;
}
}
if ( $in_cart ) {
unset( $rates['free_shipping:4'] ); // shipping method ID
}
return $rates;
}
Jagdish Sarma Asked question March 4, 2025