WordPress woocommerce – hide flat rate when free shipping

I have one wordpress/woocommerce site. When user cart amount is over 500 i must have free shipping in cart subtotal. Right now i have setup flat rate 25 and free shipping if amount is more then 500.

I google it from help and add some code into functions.php but still have same problem.

Read More
    function hide_all_shipping_when_free_is_available( $available_methods ) {

if( isset( $available_methods['free_shipping'] ) ) :

// Get Free Shipping array into a new array
$freeshipping = array();
$freeshipping = $available_methods['free_shipping'];

// Empty the $available_methods array
unset( $available_methods );

// Add Free Shipping back into $avaialble_methods
$available_methods = array();
$available_methods['free_shipping'] = $freeshipping;

endif;

return $available_methods;
}

i use wordpress with woocommerce 2.3.8 on Oxygen theme.

Best regards

Related posts

1 comment

  1. You’re using the old method, you need to use this new one I think.

    Copied from WooThemes website:

    add_filter( 'woocommerce_package_rates','hide_shipping_when_free_is_available', 10, 2 );
    
    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;
    }
    

Comments are closed.