En WooCommerce si habilitamos el envío gratuito por cupón o por una cantidad mínima de pedido, aparecerá en el carrito y checkout junto al resto de gastos de envío que tengamos configurados
Si queremos ocultar el resto de gastos de envío y dejar solamente el envío gratuito cuando esté disponible podemos usar este snippet:
// Ocultar otros métodos de envío cuando el envío gratuito está disponible. 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; break; } } return ! empty( $free ) ? $free : $rates; } add_filter( 'woocommerce_package_rates', 'my_hide_shipping_when_free_is_available', 100 );
Añádelo al functions.php de tu theme y de esta forma el envío gratuito reemplazará al resto de opciones de envío cuando esté disponible.
Fuente: boluda.com