Skip to content

Instantly share code, notes, and snippets.

@maxrice
Created September 12, 2012 18:04
Show Gist options
  • Star 4 You must be signed in to star a gist
  • Fork 3 You must be signed in to fork a gist
  • Save maxrice/3708681 to your computer and use it in GitHub Desktop.
Save maxrice/3708681 to your computer and use it in GitHub Desktop.
Hide default flat rate shipping method when free shipping is available
// Hide standard shipping option when free shipping is available
add_filter( 'woocommerce_available_shipping_methods', 'hide_standard_shipping_when_free_is_available' , 10, 1 );
/**
* Hide Standard Shipping option when free shipping is available
*
* @param array $available_methods
*/
function hide_standard_shipping_when_free_is_available( $available_methods ) {
if( isset( $available_methods['free_shipping'] ) AND isset( $available_methods['flat_rate'] ) ) {
// remove standard shipping option
unset( $available_methods['flat_rate'] );
}
return $available_methods;
}
@sykesflo
Copy link

Hello!

Where do you put this code? In what file?
Sorry, I'm a newbie.
Thanks!

Copy link

ghost commented Jan 21, 2014

In your themes or child themes functions.php would suffice

@kamleshpawar2006
Copy link

i pasted this code in my themes functions.php but 'Calculate Shipping ↓' is still there in cart page.how to remove it from there?

Copy link

ghost commented Jul 4, 2014

Same issue here. What's wrong?

@bekarice
Copy link

There's a setting under WooCommerce > Shipping to enable the shipping calculator on the cart page. Disable that setting to do so.

@tatof
Copy link

tatof commented Jul 28, 2014

How can i make this posible for "local_delivery".

Got flat_rate as default and when "local_ delivery" is available I want to automatic choose that option and remove flat_rate.

Tryed this but doesn't work:

add_filter( 'woocommerce_available_shipping_methods', 'hide_standard_shipping_when_free_is_available' , 10, 1 );

function hide_standard_shipping_when_free_is_available( $available_methods ) {
if( isset( $available_methods['local_delivery'] ) AND isset( $available_methods['flat_rate'] ) ) {
// remove standard shipping option
unset( $available_methods['flat_rate'] );
}
return $available_methods;
}

@tarunagarwal11
Copy link

Fantastic works fine...Thanks a ton maxrice...

@kiritDholakiya
Copy link

add_filter( 'woocommerce_package_rates', 'custom_shipping_by_product_weight',10,2);
function custom_shipping_by_product_weight($rates,$packages){
echo print_r( $rates, 1 );
wp_die();
}

=> I added above code in functions.php file but nothing happen. i want to know all available methods. and only set ups method for cart weight greater than 2lbs and set USPS method for less than 2 lbs.

Please help me to sort out this problem.
Thanks...

@alemarengo
Copy link

There's another gist (https://gist.github.com/mikejolley/11171530) where some discussed about this issue. I cannot believe I don't understand why this method doesn't affect my ecommerce. I need only local_pickup and free_shipping. I need to hide flat_rate even it exists and should stay there. How can I fix this? I'd be glad to receive your help. :)

@dsyvon
Copy link

dsyvon commented Sep 29, 2017

i put the code in my child theme functions and disabled shipping calculator in woocommerce settings and yet the drop down menu of countries is there on the cart page along with shipping options. This has been a three hour problem that remains unresolved despite the amount of plugins and php I put in. H E L P

@luiseduardobraschi
Copy link

luiseduardobraschi commented Mar 18, 2018

This filter has been deprecated a long time ago.

DON'T USE IT!

Refer here for alternative snippets.

woocommerce/woocommerce#4230

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment