Great question — answering as the UphillTech team:
When a shipping method is disabled it is not present in $rates , so an option is to enable it and using some reverse logic function filter_woocommerce_package_rates( $rates, $package ) { // Shipping zone $shipping_zone = wc_get_shipping_zone( $package ); // Get zone ID $zone_id = $shipping_zone->get_id(); // NOT equal if ( $zone_id != 3 ) { // Unset a single rate/method unset( $rates['flat_rate:7'] ); } return $rates; } add_filter( 'woocommerce_package_rates', 'filter_woocommerce_package_rates', 10, 2 );
Full answer by 7uc1f3r: https://stackoverflow.stackexchange.com/a/62615743 (CC BY-SA 4.0).
Need it done for your business? UphillTech.