• 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 / Agregar un único producto al carrito de WooCommerce

Agregar un único producto al carrito de WooCommerce

Agregar un único producto al carrito de WooCommerce

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

funcionalidad woocommerce

¿Me ayudas a llegar a más gente?

Twittear Compartir LinkedIn WhatsApp

En un artículo anterior vimos cómo agregar una única unidad de diferentes productos al carrito de WooCommerce, sin embargo en este artículo vamos a limitar las ventas a un único producto, incluso a una única unidad al añadir al carrito

 

Resultado Final

Al final obtendremos algo similar a la siguiente imagen:

Añadir un único producto a WooCommerce

 

Limitar la venta a un solo producto

El siguiente código permite añadir sólo un producto al carrito de WooCommerce, si estas en la pantalla de producto te muestra un mensaje de que el producto anterior ha sido reemplazado en el carrito.

add_filter( 'woocommerce_add_to_cart_validation', 'dcms_add_one_product_in_cart', 20, 3 );
function dcms_add_one_product_in_cart( $valid, $product_id, $quantity  ) {
    if ( WC()->cart->get_cart_contents_count() <> 0){
        wc_empty_cart();
        wc_add_notice( 'El producto ha sido reemplazado en el carrito', 'notice' );
    }

    return $valid;
}

En el código anterior:

  • Usamos el Hook de filtro woocommerce_add_to_cart_validation, que hace referencia a la función dcms_add_one_product_in_cart.
  • Dentro de la función comprobamos si hay productos agregados al carrito.
  • Si los hay entonces limpiamos el carrito y luego imprimimos un mensaje.
  • Finalmente retornamos el valor de la variable $valid, ya que estamos en un Hook de filtro.

 

Limitar la venta a un solo producto y una única unidad

En algunos casos es posible que necesites que solo se agregue una única cantidad del producto seleccionado, lo puedes hacer con el siguiente código:

// Validación al agregar un producto al carrito
add_filter( 'woocommerce_add_to_cart_validation', 'dcms_add_one_product_in_cart', 20, 3 );
function dcms_add_one_product_in_cart( $valid, $product_id, $quantity  ) {
    if ( WC()->cart->get_cart_contents_count() <> 0){
        wc_add_notice( 'El producto ha sido reemplazado en el carrito', 'notice' );
        wc_empty_cart();
    }
    return quantity_only_one($valid, $quantity);
}


// Validación al actualizar el carrito
add_filter( 'woocommerce_update_cart_validation', 'dcms_update_cart_validation', 20, 4 );
function dcms_update_cart_validation( $valid, $cart_item_key, $values, $quantity ) {
	return quantity_only_one($valid, $quantity);
}

// Función auxiliar
function quantity_only_one($valid, $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:

  • El codigo tiene dos partes y una función auxiliar, la primera parte es similar al código que vimos anteriormente
  • Usamos el Hook de filtro woocommerce_add_to_cart_validation, que hace referencia a la función dcms_add_one_product_in_cart.
  • Dentro de la función comprobamos si hay productos agregados al carrito.
  • Si los hay entonces limpiamos el carrito y luego imprimimos un mensaje.
  • El retorno en este caso pasa por otra función auxiliar que valida que solo haya una unidad quantity_only_one().
  • La segunda parte del código es validar cuando la cantidad se cambia, esto lo hacemos con el Hook de filtro woocommerce_update_cart_validation que hace referencia a la función dcms_update_cart_validation.
  • Dentro de esta función simplemente llamamos a la función auxiliar que valida que haya solo una unidad del producto.

 

Conclusión

Como has podido comprobar puedes añadir la funcionalidad de permite agregar sólo un único producto al carrito de WooCommerce, hemos visto como realizarlo de manera simple a través de código.

 
¿Aún con dudas?, en el siguiente artículo se detallan los puntos anteriores:

Suscríbete a DecodeCMS:  

¿Me ayudas a llegar a más gente?

Twittear Compartir LinkedIn WhatsApp

Artículos Relacionados

  • URL para agregar varios productos al carrito de WooCommerceURL para agregar varios productos al carrito de WooCommerce
  • Acortar el título del producto en la página de tienda de WooCommerceAcortar el título del producto en la página de tienda de WooCommerce
  • Agrega una única unidad por producto al carrito de WooCommerceAgrega una única unidad por producto al carrito de WooCommerce
  • Sincronizar WooCommerce y Google SheetsSincronizar WooCommerce y Google Sheets
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

Alojamiento Wordpress

Niveles

Básico Intermedio Avanzado

Etiquetas

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

Populares

Subir archivos grandes a WordPress

Logout menú en Easy Digital Downloads

Cómo modificar una plantilla de WooCommerce

Ocultar categorías que no están activas en widget de categorías WooCommerce

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