How can we improve WooCommerce?

Auto select free shipping at checkout if customer is above the minimum purchase amount

Currently if the customer is entitled to free shipping it does not auto select this in checkout. The customer has to pick from the dropdown/radio buttons to receive free shipping. Really silly that this is not already automatic! please fix!!!

6 votes
Sign in
Sign in with: Facebook Google
Signed in as (Sign out)
You have left! (?) (thinking…)
Richard shared this idea  ·   ·  Flag idea as inappropriate…  ·  Admin →
completed  ·  Patrick Rauland responded  · 

This can be done by following Aronwp’s advice below. Set Free shipping as the default option.


Sign in
Sign in with: Facebook Google
Signed in as (Sign out)
  • calvin commented  ·   ·  Flag as inappropriate

    2 things you can do. Dont need to use a plugin.

    1. Create a zone, then create a shipping method
    - edit the minimum order amount like in the image

    2. Click SAVE
    - then do a quick test buy, you will notice that the first option will now be the FREE SHIPPING! Will only show once it reaches the minimum amount like in my case it is above 150.

  • Phil commented  ·   ·  Flag as inappropriate

    Why would this not be a configuration option? Obvious requirement. I'm in the same position. Even if you move the free shipping to be the first item why would a user ever want to decide they want to pay!?

  • Deeps commented  ·   ·  Flag as inappropriate

    Add Below code to your child theme functions.php file ( Before adding code, clear your WooCommerce cache. Go to WooCommerce > System Status > Tools > WC Transients > Clear transients. )

    This will hide all other shipping methods if the free shipping conditions are matched and free shipping is available :

    /* Free Shipping Code start here */
    function my_hide_shipping_when_free_is_available( $rates ) {
    $free = array();
    foreach ( $rates as $rate_id => $rate ) {
    if ( 'free_shipping' === $rate->method_id ) {
    $free[ $rate_id ] = $rate;
    return ! empty( $free ) ? $free : $rates;
    add_filter( 'woocommerce_package_rates', 'my_hide_shipping_when_free_is_available', 100 );

  • Ben Andersen commented  ·   ·  Flag as inappropriate

    I found that this works in the latest WC if you drag the Free Shipping option to the top, then it's automatically selected when it appears. At least when I use a coupon for free shipping. I'm guessing it's the same if you use a minimum purchase amount for free shipping.

  • T commented  ·   ·  Flag as inappropriate

    As the people below have said, this needs a new solution since the update. Customers are occasionally getting confused.

  • Anonymous commented  ·   ·  Flag as inappropriate

    I've tried setting free shipping as my default, but its still not working. It doesn't seem to be checking if the free shipping requirements are met. Can someone please help me?
    Thank you!

  • Aronwp commented  ·   ·  Flag as inappropriate

    All you need to do is select the free shipping option as the default option in general shipping settings. It will then default to free shipping if all free shipping requirements are met.

    See screenshot


Feedback and Knowledge Base