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!!
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?