Añadir un mensaje de cuánto queda para el envío gratis

LucusHost, el mejor hosting

Cómo vimos en el artículo de cómo aumentar el pedido medio, una de las estrategias era ofrecer un envío gratuito a partir de cierta cantidad. Para avisar de esto normalmente solemos usar la barra superior del menú o avisarlo en la ficha del producto.

Pero… Existe otra forma de hacerlo, y es avisando al cliente cuánto le queda para que su envío sea gratuito. Por ejemplo colocar encima de los productos relacionados de la ficha de producto cuánto le falta o bien en la propia página de finalizar compra de WooCommerce.

Todo esto vamos a aprenderlo en este tutorial solo a código para no tener que instalar plugins así que empezamos:

Notificar cuánto queda en la página de checkout

Añade este código a tu archivo functions.php o a tu plugin de funcionalidades como explico aquí:

add_action( 'woocommerce_before_checkout_form_cart_notices', 'dl_notificacion_envio_carrito_checkout', 10, 0 );
function dl_notificacion_envio_carrito_checkout() {
	if ( is_checkout() && WC()->cart ) {
		$total = WC()->cart->get_cart_contents_total(); // Después del dto
		$limit = 100.00; // Pon aquí cual es el precio del envío gratuito
		// Condicional si el carrito es inferior a la cantidad
		if ( $total < $limit ) {
			// Calcular diferencia
			$diff = $limit - $total;
			$diff_formatted = wc_price( $diff );
			// Mostrar aviso
			wc_add_notice( sprintf( "Añade %s para tener envío gratuito!", $diff_formatted ), 'notice' );
		}
	}
}

Obtendremos el siguiente resultado en la página de pago:

avisos en el checkout woocommerce
Mostrar aviso de cuanto queda para envío gratuito

Mostrar mensaje en la ficha de producto

Podríamos indicar al cliente al lado del botón de añadir al carrito cuánto le queda para los portes gratuitos, siendo así un poco más probable conseguir esa compra, en este caso añadiríamos el siguiente código:

add_action( 'woocommerce_after_add_to_cart_button', 'dl_notificacion_envio_carrito_checkout_2', 10, 0 );
function dl_notificacion_envio_carrito_checkout_2() {
	if ( is_checkout() && WC()->cart ) {
		$total = WC()->cart->get_cart_contents_total(); // Después del dto
		$limit = 100.00; // Pon aquí cual es el precio del envío gratuito
		// Condicional si el carrito es inferior a la cantidad
		if ( $total < $limit ) {
			// Calcular diferencia
			$diff = $limit - $total;
			$diff_formatted = wc_price( $diff );
			// Mostrar aviso
			wc_add_notice( sprintf( "Añade %s para tener envío gratuito!", $diff_formatted ), 'notice' );
		}
	}
}

Este último puede variar la localización, dependiendo de en dónde lo insertéis. Quedando un resultado:

notificacion portes gratuitos woocommerce

Si deseas ocultar precios de los prodcutos para ciertos perfiles de usuarios haz clic aquí.

Por último mencionar que ahora estoy estableciendo en tiendas online con WooCommerce un servicio de punto de venta físico. Cualquier duda sobre este tutorial dejármela en comentarios.

¡Haz clic para puntuar esta entrada!
(Votos: 6 Promedio: 3.8)
mailerlite diegol

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 Curso de WooCommerce

También puedes realizar una donacion para seguir apoyando la salida de nuevos tutoriales y actualizaciones

mailerlite diegol

Reader Interactions

comentarios

  1. Abby says

    Hola! He seguido tu tutorial (con plugin y sin) y cuando he logrado hacerlo me sale una cantidad desorbitada de pedido mínimo para que el cliente tenga gastos gratis. ¿Alguna solución? Gracias.

  2. Sergio says

    Hola, me gustaria mostrar la cantidad en el carrito de compra, antes del checout, ¿seria posible mostrarla? Podrías ayduarme, muchisimas gracias de antemano.

  3. roger montero says

    Buenas: y para que saliera ese mensaje en el carrito en vez de en el checkout como sería. Creo que cuanto antes se lo muestres mejor pero no doy con la tecla de como mostrarlo en el carrito.

    • Diegol says

      Hola Roger,

      Es cambiar el hook dentro del código:

      add_action( 'woocommerce_before_cart', 'dl_notificacion_envio_carrito_checkout', 10, 0 );
      function dl_notificacion_envio_carrito_checkout() {
      if ( is_checkout() && WC()->cart ) {
      $total = WC()->cart->get_cart_contents_total(); // Después del dto
      $limit = 100.00; // Pon aquí cual es el precio del envío gratuito
      // Condicional si el carrito es inferior a la cantidad
      if ( $total < $limit ) { // Calcular diferencia $diff = $limit - $total; $diff_formatted = wc_price( $diff ); // Mostrar aviso wc_add_notice( sprintf( "Añade %s para tener envío gratuito!", $diff_formatted ), 'notice' ); } } }

      Espero que te sirva,

      Un saludo!

  4. Jorge says

    Hola, Diego. Tengo un problema con este código. A la hora de calcular la diferencia me suma el IVA, lo que incrementa la diferencia hasta llegar al envío gratis. ¿Sabes cómo lo podría corregir? Gracias.

Deja una respuesta

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