• 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 / Comprar productos de la misma categoría en WooCommerce

Comprar productos de la misma categoría en WooCommerce

[ 22 junio 2023 ] [ Actualizado: 28 junio 2023 ]
[ Autor: Jhon Marreros Guzmán ][ Plugins - Intermedio] [ ]

funcionalidad woocommerce

Suscríbete a DecodeCMS:  

En algunos proyectos es posible que quieras limitar la compra de productos a solo una categoría por pedido, en este artículo veremos como realizar esto directamente a través de código.

 

Resultado Final

Al final queremos obtener algo similar a lo que se muestra en la siguiente imagen

Comprar producto de una sola categoría

 

Código para comprar productos de la misma categoría

El siguiente código esta optimizado para productos que tienen sólo una categoría asignada, si el producto no tiene categoría asignada se considera como una categoría = 0

add_filter( 'woocommerce_add_to_cart_validation', 'dcms_validate_same_category', 10, 3 );
function dcms_validate_same_category($passed, $product_id, $quantity){

    if ( $passed && ! empty( WC()->cart->get_cart() )  ) {
        // Get category current product 
        $product_category = wc_get_product_term_ids($product_id, 'product_cat')[0]??0;

        // Get first product category
        $first_cart_data = current(WC()->cart->get_cart());
        $first_product_id = $first_cart_data['product_id'];
        $cart_product_category = wc_get_product_term_ids($first_product_id, 'product_cat')[0]??0;

        if ( $product_category !== $cart_product_category ){
            wc_add_notice( 'Sólo puedes agregar productos de la misma categoría', 'error' );
            return false;
        }    
    }

    return $passed;
}

En el código anterior:

  • Usamos el Hook de validación del carrito woocommerce_add_to_cart_validation que hace referencia a la función dcms_validate_same_category()
  • Dentro de la función comprobamos si el carrito esta o no vacío, si no esta vacío entonces hacemos las comprobaciones
  • Utilizamos la función de Woocommerce wc_get_product_term_ids() para obtener los Ids de las categorias de un producto
  • Obtenemos solo el primer elemento del array devuelto
  • Por otro lado obtenemos el primer elemento del carrito y usamos la misma función de WooCommerce para obtener su primera categoría
  • Hacemos la comparación si son diferentes devolvemos false, lo que quiere decir que no ha pasado la validación y no se podrá agregar al carrito
  • También devolvemos un mensaje de error indicando que sólo se pueden agregar productos de la misma categoría

 

Conclusión

Como has podido comprobar puedes restringir la compra de productos para que pertenezcan a una misma categoría, en este artículo hemos visto como realizarlo de manera simple a través de código.

 

¿Me ayudas a llegar a más gente?

Twittear Compartir LinkedIn WhatsApp

Artículos Relacionados

  • Agregar un único producto al carrito de WooCommerceAgregar un único producto al carrito de WooCommerce
  • 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
Valora este artículo : 1 barra2 barras3 barras4 barras5 barras (2 votos, promedio: 5,00 de 5)
Cargando...

Interacciones con los lectores

Comentarios

  1. Eduardo

    7 julio, 2023

    Muy buen Articulo, gracias. Soy nuevo programando sobre WP, este código donde lo agrego?

    Saludos.

    • Jhon Marreros Guzmán

      12 julio, 2023

      Hola, puedes agregarlo en el archivo functions.php de tu tema hijo, o puedes revisar: https://decodecms.com/agregar-codigo-a-tu-sitio-sin-usar-functions-php/

  2. Lenny

    3 noviembre, 2024

    hola mi duda es la siguiente, yo quiero que puedan comprar productos de otras categorías, pero si compran de una categoría en concreto ya no pueden agregar productos de las demás categorías. Eso es posible con ese código adaptándolo al ID de la categorías ??

    • Jhon Marreros Guzmán

      4 noviembre, 2024

      Hola, lo que planteas es interesante, evaluaré hacer un artículo sobre esto, posiblemente adaptando un poco el código de este artículo.

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

*

* Gravatar habilitado

Barra lateral principal

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

Omnisend
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

Mostrar el stock en la lista de productos de WooCommerce

Copias no actualizadas de algunos archivos de plantilla WooCommerce

Limitar a los autores a ver su propio contenido en WordPress

Agregar imágenes por programación en WordPress

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