Snippet que muestra mensaje con importe restante en carrito para envío gratis

Gracias a este snippet podremos mostrar un mensaje en el carrito con lo que falta de pedido para que los gastos de envío salgan gratis. Para configurarlo tan solo tienes que crear:

  1. Una opción de envío gratis a partir de un gasto mínimo (desde WooCommerce > Ajustes > Envíos)
  2. indicar en el código snippet esa cantidad mínima y el mensaje que desees mostrar.

Para definir la cantidad mínima de pedido reemplaza el número 60 de la línea 7 por el gasto mínimo que te interese.

Para cambiar el mensaje reemplaza la frase entre comillas de la línea 8 por el texto que quieras.

Variables disponibles:

{{min_amount}}” Muestra la cantidad mínima que hayas definido.

“{{remaining_amount}}” Indica la cantidad que le falta al cliente para alcanzar el pedido mínimo con envío gratis. (Teniendo en cuenta los impuestos)

Snippet que muestra un mensaje en el carrito de WooCommerce para envío gratis

/ Muestra un mensaje de upsell en el carrito cuando el cliente aún no ha alcanzado el gasto mínimo para envío gratis
if ( in_array( 'woocommerce/woocommerce.php', get_option( 'active_plugins' ) ) ){

	add_action( 'woocommerce_after_calculate_totals', 'add_upsell_message_for_free_shipping' );
	function add_upsell_message_for_free_shipping( $cart ){
	
		$min_amount = 60; // Escribe aquí el gasto mínimo que debe hacer el cliente para conseguir envío gratis. Por ejemplo, si ofreces envío gratis a partir de 60€, entonces escribe 60
		$upsell_message = 'Recuerda que si haces un pedido de {{min_amount}}, los gastos de envío te salen GRATIS. Añade algún producto más al carrito y ¡ahórrate los portes!';
	
		// No muestra nada si no está en la página de carrito
		if ( !is_cart() ) {	
			return;
		}
	
		// Obtiene el importe total del carrito
		$cart_total = WC()->cart->subtotal;
	
		// Reemplaza la variable {{min_amount}}
		$currency = get_woocommerce_currency();
		$upsell_message = str_replace( '{{min_amount}}' , $min_amount.$currency, $upsell_message );
	
		// Reemplaza la variable {{remaining_amount}}
		$remaining_amount = $min_amount - $cart_total;
		$remaining_amount .= $currency;
		$upsell_message = str_replace( '{{remaining_amount}}' , $remaining_amount, $upsell_message );
	
		if ( !empty( $min_amount ) && ( $min_amount > $cart_total ) ) {
	
			// Muestra el mensaje upsell
	            	wc_add_notice( $upsell_message, 'notice' );
		}
	}
}
Ver más tutoriales de: WooCommerce

Tutoriales relaccionados

¿Necesitas un desarrollo a medida?

Login para aceder

LOGIN
REGISTRO