641 50 40 46 · hola@seoenunclick.com
Empresa de diseño web

Ocultar otros métodos de envío si el envío gratuito está disponible

Cuando ofrecemos el envío gratuito en nuestra página web a partir de cierta cantidad, nos encontramos con el «problema» de que muestra diferentes opciones, pudiendo seleccionar el envío con coste o el envío gratuito.

Aunque el envío gratuito está disponible, no queda del todo bien mostrar el precio del envío con coste también.

Por ello, podemos introducir un breve código con el que vamos a conseguir que se muestre únicamente la opción envío gratis. la cual estará seleccionada por defecto.

Para ello, lo primero es ir a WooCommerce — Estado — Herramientas y borrar los datos temporales tanto de WooCommerce como los cadudos.

Una vez borrados estos datos, iremos a nuestro archivo functions.php (siempre del tema child) e introduciremos el siguiente código.

Mostrar únicamente envío gratuito:

Oculta todo, pero free_shipping si está disponible y es compatible con las zonas de envío.

/**
 * Mostrar solo envío gratuito.
 */
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 );