Viendo 4 respuestas - de la 16 a la 19 (de un total de 19)
  • Ah, perfecto.

    Si no te importa, pon aquí el código por si alguien tiene el mismo problema que tú, que pueda aprovecharlo.

    Saludos y ánimo!!

    Iniciador del debate gruposmartla

    (@gruposmartla)

    function is_product_the_same_cat($valid, $product_id, $quantity) 
    {
        global $woocommerce; 
        if($woocommerce->cart->cart_contents_count == 0) { 
            return true; 
        } 
        foreach ( $woocommerce->cart->get_cart() as $cart_item_key => $values ) { 
            $_product = $values['data']; 
            $terms = get_the_terms( $_product->id, 'product_cat' ); 
            $target_terms = get_the_terms( $product_id, 'product_cat' ); 
            foreach ($terms as $term) { 
                $cat_ids[] = $term->term_id; 
            } 
            foreach ($target_terms as $term) { 
                $target_cat_ids[] = $term->term_id; 
            } 
        } 
        $same_cat = array_intersect($cat_ids, $target_cat_ids); 
        if(count($same_cat) > 0) return $valid; 
        else {
    		wc_add_notice( 'No puedes comprar productos de restaurantes diferentes, Tienes que hacer un nuevo pedido', 'error' );
    		return false;
        } 
    }
    add_filter( 'woocommerce_add_to_cart_validation', 'is_product_the_same_cat',10,3);

    Listo! gracias por la ayuda

    Pefecto @gruposmartla

    Muchas gracias por tu aporte.

    Seguro que a alguien le viene bien este código en un momento dado.

    Saludos y mucho ánimo!

    Gracias por el código:
    Sólo tengo un problema al momento de ejecutarlo, la primera vez que elijo un producto de una tienda y luego trato de elegir el producto de otra tienda me sale el aviso «Debes hacer otro pedido», pero cuando trato de hacerlo en viceversa el aviso que sale es que el producto fue añadido al carrito, aún que el producto no se añade.
    ¿Alguna idea del porqué pasa esto?

Viendo 4 respuestas - de la 16 a la 19 (de un total de 19)
  • El debate ‘Comprar en una sola categogría’ está cerrado a nuevas respuestas.