Oculta los métodos de envío cuando se cumple la regla de envío gratis en Woocommerce
Este snippet ocultará todos los métodos de envío cuando se cumple la opción de envío gratis (por ejemplo Una cantidad mínima de pedido).

Añade el siguiente código al archivo functions.php de tu tema activo o utiliza un plugin de snippets para evitar modificar los archivos del tema directamente:
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 );
¿Cómo funciona?
- Identificar envío gratis: El código recorre todos los métodos de envío disponibles y busca aquel con el identificador free_shipping.
- Filtrar métodos: Si encuentra la opción de envío gratis, guarda ese método en un nuevo array $free y rompe el bucle.
- Devolver resultados: Si hay un método de envío gratis disponible, devuelve solo esa opción. De lo contrario, muestra todos los métodos disponibles.
Ventajas de este enfoque:
- Mejora la usabilidad al simplificar las opciones de envío.
- Reduce errores y confusión al destacar el envío gratis.
- Es fácil de implementar y funciona con cualquier configuración de zona de envío en WooCommerce.
Este pequeño snippet es una herramienta poderosa para mejorar la experiencia de tus clientes y optimizar tu tienda WooCommerce.
Antes y después

