Support » Plugin: WooCommerce » Shipping: "Flat_rate" not replaced when amount reached for "free_shipping"

  • Hi there. 🙂 I hope you will be able to help me out. My problem is the following:

    I set in the free shipping preferences that articles are shipped without shipping costs when the customer reaches an amount of 50 Euro. But when a customer has reached the amount, the standard in the cart is still on “Flat Rate”, and “Free Shipping” is only listed as an option for the customer.

    I find that kind of strange, because I thought that the “Flat Rate” would be replaced by “free-shipping”, when the amout is reached. But instead both shipping options are shown.

    How can I change that?

    Thank you in advance! 😉

Viewing 3 replies - 1 through 3 (of 3 total)
  • If I remember right there is no replacement going on. It is working as you described because that’s how the code is written. And unless I’m mistaken the assumption is that IF the shopper wants free shipping then they’d select it.

    For example, maybe you offer free shipping, but I want my stuff sent overnight via UPS because I need it sooner than free shipping would get it to me. So I need to see the UPS options so I can opt to may for shipping if I want to.

    I’ve posted a filter that does just this a couple days ago in another topic:

    add_filter( 'woocommerce_available_shipping_methods', 'cj_woocommerce_available_shipping_methods' );
    function cj_woocommerce_available_shipping_methods( $available_methods ) {
    	if ( isset( $available_methods['free_shipping'] ) ) {
    		foreach ( $available_methods as $key => $value ) {
    			if ( 'free_shipping' != $key ) {
    				unset( $available_methods[ $key ] );
    	return $available_methods;

    Put this in your (child) themes functions.php file or in a plugin.

    I am looking for a solution to the OP’s same post.

    Coen, I put that code into the functions.php file and it simply made all order revert to free shipping no matter what order amount, even though within woocommerce I set the free shipping to show after $50.

    Did that code work correctly for you? Do I need to enter the amount within the code too?

    I have zero coding ability with php, or any other code. 🙂

    Thanks in advance for any help I get here.

Viewing 3 replies - 1 through 3 (of 3 total)
  • The topic ‘Shipping: "Flat_rate" not replaced when amount reached for "free_shipping"’ is closed to new replies.