-
-
Save mikejolley/11171530 to your computer and use it in GitHub Desktop.
Hide all/some shipping options when free shipping is available
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* woocommerce_package_rates is a 2.1+ hook | |
*/ | |
add_filter( 'woocommerce_package_rates', 'hide_shipping_when_free_is_available', 10, 2 ); | |
/** | |
* Hide shipping rates when free shipping is available | |
* | |
* @param array $rates Array of rates found for the package | |
* @param array $package The package array/object being shipped | |
* @return array of modified rates | |
*/ | |
function hide_shipping_when_free_is_available( $rates, $package ) { | |
// Only modify rates if free_shipping is present | |
if ( isset( $rates['free_shipping'] ) ) { | |
// To unset a single rate/method, do the following. This example unsets flat_rate shipping | |
unset( $rates['flat_rate'] ); | |
// To unset all methods except for free_shipping, do the following | |
$free_shipping = $rates['free_shipping']; | |
$rates = array(); | |
$rates['free_shipping'] = $free_shipping; | |
} | |
return $rates; | |
} |
Works great! THANKS!
Worked great until the update to 2.6.
Did they changed the hooks with the new "shipping zones"-feature?
I'm just here to thank you. Graet job, thanks a lot.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
The example does not seem to work!Okay I had a caching problem with WooCommerce Transients