• Saltar a la navegación principal
  • Saltar al contenido principal
  • Saltar a la barra lateral principal

DecodeCMS

Tu WordPress a otro Nivel ...

  • Acerca de
  • Contacto
  • Inicio
  • Tutoriales
    • Themes
    • Plugins
    • Core
    • Recursos
  • Cursos
  • Acceder
    • Mis cursos
    • Mi Cuenta
    • Acceder
Inicio / Tutoriales / Plugins / Agrega una única unidad por producto al carrito de WooCommerce

Agrega una única unidad por producto al carrito de WooCommerce

Agrega una única unidad por producto al carrito de WooCommerce

[ hace 2 meses ] [ Autor: Jhon Marreros Guzmán ][ Plugins - Intermedio] [ ]

funcionalidad

¿Me ayudas a llegar a más gente?

Twittear Compartir LinkedIn WhatsApp

Es posible que en algunos proyectos quieras limitar la compra de productos a un único ítem, es decir, puedes agregar varios productos pero solo uno de cada uno.

 

Resultado Final

Al final queremos obtener algo similar a como se muestra en la imagen:

Agregar un item por producto resultado final

 

Código para agregar un ítem por producto

Puedes agregar el siguiente código en el archivo functions.php de tu tema hijo o usando algún plugin de Snippets.


// Validación al agregar al carrito
add_filter( 'woocommerce_add_to_cart_validation', 'dcms_add_to_cart_validation', 10, 3 );
function dcms_add_to_cart_validation( $valid, $product_id, $quantity ) {
	if ( $valid && $quantity > 1){
		wc_add_notice( 'Sólo puedes agregar un item por producto', 'error' );
		return false;
	}

	if ( $valid && ! empty( WC()->cart->get_cart() )  ) {
		foreach ( WC()->cart->get_cart() as $values ) {
			if ( $product_id == $values['product_id'] ) {
				wc_add_notice( 'El producto ya existe en el carrito', 'error' );
				return false;
			}
		}
	}

	return $valid;
}

// Validación al actualizar el carrito
add_filter( 'woocommerce_update_cart_validation', 'dcms_update_cart_validation', 10, 4 );
function dcms_update_cart_validation( $valid, $cart_item_key, $values, $quantity ) {
	if ( $valid && $quantity > 1){
		wc_add_notice( 'Sólo puedes agregar un item por producto', 'error' );
		return false;
	}

	return $valid;
}

En el código anterior:

  • Usamos Hooks de validación, es decir podemos cancelar el proceso retornando falso
  • El primer Hook de filtro es woocommerce_add_to_cart_validation, hace referencia a la función dcms_add_to_cart_validation y se ejecuta tras añadir un producto al carrito
  • Dentro de esta función tenemos dos partes, la primera valida que sólo se agregue una cantidad de una unidad
  • La segunda parte controla si el producto ya esta añadido al carrito, en ambos casos si falla emite un mensaje y retornamos falso
  • El otro Hook es woocommerce_update_cart_validation, hace referencia a la función dcms_update_cart_validation, este se ejecuta cuando se actualizan las cantidades del carrito
  • Dentro de esta función simplemente validamos que la cantidad no sea mayor que uno

 

Conclusión

Si quieres controlar que sólo se agregue una unidad por cada producto en el carrito de WooCommerce, puedes realizarlo fácilmente directamente a través de código. También puedes editar el código para que en lugar de una unidad te acepte una cantidad máxima.

 
¿Aún con dudas?, en el siguiente video se detalla el uso del código anterior.

Suscríbete a DecodeCMS:  

 

¿Me ayudas a llegar a más gente?

Twittear Compartir LinkedIn WhatsApp

Artículos Relacionados

  • Dos productos por fila en versión móvil en WooCommerceDos productos por fila en versión móvil en WooCommerce
  • Activar el modo catálogo en WooCommerceActivar el modo catálogo en WooCommerce
  • Restringir productos por país en WooCommerce a través de códigoRestringir productos por país en WooCommerce a través de código
  • Etiqueta de Agotado en lista de productos WooCommerce sin pluginsEtiqueta de Agotado en lista de productos WooCommerce sin plugins
Valora este artículo : 1 barra2 barras3 barras4 barras5 barras (2 votos, promedio: 5,00 de 5)
Cargando...

Interacciones con los lectores

Para escribir código envolver con: <pre class="language-xxx"><code> </code></pre> ,reemplaza las xxx (php, css, html)

*

* Gravatar habilitado

Barra lateral principal

Presentación

Curso Decodifica WordPress

Únete a DecodeCMS

Recibirás como regalo:

Guia práctica con video:
¿Quieres agregar código a WordPress? Revisa las diferentes opciones que tienes.Ver más

Jooble
Alojamiento Wordpress

Niveles

Básico Intermedio Avanzado

Etiquetas

accesibilidad css dashboard editor error funcionalidad herramientas imagen js librería mejoras optimización seguridad social woocommerce

Populares

Insertar un logo SVG animado en WordPress

Formulario de cotización en WooCommerce sin plugins

Agregar archivos de fuentes tipográficas en WordPress

Mostrar mensajes en la administración de WordPress y en Gutenberg

© logo decode pie
Política de Privacidad | Política de devoluciones
Copyrigth 2023 Todos los derechos reservados