Solo mostrar envío gratis si se llega a X importe en WooCommerce

Si no habéis realizado una configuración con el plugin que uso en mi guía de envíos en WooCommerce, si tenéis configurado el envío gratis a partir de cierto importe os encontraréis en un caso como este:

mostrar solo envio gratis en woocommerce
Situación habitual

Efectivamente, el cliente ha llegado al pedido mínimo gratis pero tiene que elegir que quiere envío gratis. Muchos clientes ni se dan cuenta que tienen que hacerlo y pasan dos cosas: o lo acaba pagando sin querer o bien se siente estafado porque decían que después de X importe era gratis.

En este tutorial voy a enseñar como arreglar esto, tanto con un código como con un plugin.

Mediante plugin: WC Hide Shipping Methods

Este plugin es gratuito, se encuentra en el repositorio oficial de WordPress. Una vez instalado nos vamos a WooCommerce > Ajustes > Envío > Opciones de envío y nos encontraremos esta nueva zona:

plugin envio gratis woocommerce
Configuración del plugin

Como se aprecia en la imagen podemos configurar que solo salga el envío gratis cuando está disponible, o bien si también vendemos de forma local mostrar solo esos dos.

Como podéis ver es un plugin muy sencillo y fácil de configurar, mostrando el siguiente resultado:

mostrar unicamente envio gratis woocommerce

Con código

WooCommerce.com ofrece estos snippets desde su web. Aun así os los dejo aquí:

Solo mostrar envío gratis

/**
 * Ocultar las tarifas de envío cuando el envío gratuito está disponible.
 * Actualizado para soportar las zonas de envío de WooCommerce 2.6.
 */
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 );

Solo envío gratis y recogida local:

/**
 * Ocultar las tarifas de envío cuando el envío gratuito está disponible, pero mantener "Recogida local" 
 * Actualizado para soportar las zonas de envío de WooCommerce 2.6
 */
function hide_shipping_when_free_is_available( $rates, $package ) {
	$new_rates = array();
	foreach ( $rates as $rate_id => $rate ) {
		// Only modify rates if free_shipping is present.
		if ( 'free_shipping' === $rate->method_id ) {
			$new_rates[ $rate_id ] = $rate;
			break;
		}
	}

	if ( ! empty( $new_rates ) ) {
		//Save local pickup if it's present.
		foreach ( $rates as $rate_id => $rate ) {
			if ('local_pickup' === $rate->method_id ) {
				$new_rates[ $rate_id ] = $rate;
				break;
			}
		}
		return $new_rates;
	}

	return $rates;
}

add_filter( 'woocommerce_package_rates', 'hide_shipping_when_free_is_available', 10, 2 );

Los podéis añadir al archivo functios.php o a vuestro plugin Code Snnipets como explico aquí.

Eso es todo, cualquier duda como siempre los leo en comentarios!

¡Haz clic para puntuar esta entrada!
(Votos: 1 Promedio: 4)

Especialista en Comercio electrónico con Woocommerce. Te ayudo a crear, gestionar y publicitar tu Ecommerce en función de tu sector y público objetivo. Puedes encontrarme en Diegol.top

¿Necesitas ayuda con este tutorial? Mándame un correo y te resuelvo todas las dudas!


Ver servicios Contactar

También puedes suscribirte a mi newsletter para no perderte ninguna novedad

Reader Interactions

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *