function hide_shipping_on_local_pickup_required($rates,$package){$local=[];foreach($package['contents'] as $item){$product=$item['data'];$shipping_class=$product-&gt;get_shipping_class();if($shipping_class=='local-pickup'){foreach($rates as $rate_id=&gt;$rate){if('local_pickup'===$rate-&gt;method_id){$local[$rate_id]=$rate;break}}}}return !empty($local) ? $local: $rates}add_filter('woocommerce_package_rates','hide_shipping_on_local_pickup_required',10,2);