Skip to content

Instantly share code, notes, and snippets.

@wbcomdev
Created May 18, 2021 04:49
Show Gist options
  • Select an option

  • Save wbcomdev/d51e6b966c127476a054d2e9c9cf15db to your computer and use it in GitHub Desktop.

Select an option

Save wbcomdev/d51e6b966c127476a054d2e9c9cf15db to your computer and use it in GitHub Desktop.
/**
* Hide shipping rates when free shipping is available, but keep "Local pickup".
* Updated to support WooCommerce 2.6 Shipping Zones.
*/
function wb_hide_shipping_when_free_is_available( $rates, $package ) {
$new_rates = array();
foreach ( $rates as $rate_id => $rate ) {
// Only modify rates if free_shipping is present.
if ( 'free_shipping' === $rate->method_id ) {
$new_rates[ $rate_id ] = $rate;
break;
}
}
if ( ! empty( $new_rates ) ) {
// Save local pickup if it's present.
foreach ( $rates as $rate_id => $rate ) {
if ( 'local_pickup' === $rate->method_id ) {
$new_rates[ $rate_id ] = $rate;
break;
}
}
return $new_rates;
}
return $rates;
}
add_filter( 'woocommerce_package_rates', 'wb_hide_shipping_when_free_is_available', 10, 2 );
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment