Ocultar otros métodos de envío cuando se cumplen las condiciones del envío gratuito en Woocommerce

Woocomerce por defecto tiene varios métodos de envío que se pueden usar para darle alternativas al cliente de usar.
Los dos más comunes son los métodos de envío «Precio fijo» y «Envío Gratuito» los cuales puedes mezclar y enganchar a tu cliente ofreciéndole un envío gratuito si él compra cierto monto en productos.
Pero cuando las condiciones del envío gratuito se cumplen woocommerce sigue mostrando los métodos de envío, algo que para mí es ilógico, ya que si te están dando el envío gratis, no debería aparece otro método de envió, que pienso yo eso puede causar algo de confusión.
Para solucionar esto puedes usar el siguiente código que lo que hace es ocultar los demás métodos de envío cuando la condición de gratuito se cumple.
function 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; break; } } return ! empty( $free ) ? $free : $rates; } add_filter( 'woocommerce_package_rates', 'hide_shipping_when_free_is_available', 100 );