Site icon Hip-Hop Website Design and Development

Compra por categorías [closed]

Buenos días tengo el siguiente código que me permite que mis productos compren solo en una categoría:

operate is_product_the_same_cat($legitimate, $product_id, $amount) 
{
    international $woocommerce; 
    if($woocommerce->cart->cart_contents_count == 0) { 
        return true; 
    } 
    foreach ( $woocommerce->cart->get_cart() as $cart_item_key => $values ) { 
        $_product = $values['data']; 
        $phrases = get_the_terms( $_product->id, 'product_cat' ); 
        $target_terms = get_the_terms( $product_id, 'product_cat' ); 
        foreach ($phrases as $time period) { 
            $cat_ids[] = $term->term_id; 
        } 
        foreach ($target_terms as $time period) { 
            $target_cat_ids[] = $term->term_id; 
        } 
    } 
    $same_cat = array_intersect($cat_ids, $target_cat_ids); 
    if(depend($same_cat) > 0) return $legitimate; 
    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);

Contraer
Pero quería incluir lo siguiente:
Hay 3 categorías en mi tienda:
a
b
c
cada una tiene 3 subcategorías:
a
a.1
a.2
a.3
b
b.1
b.2
b.3
c
c.1
c.2
c.3
Y lo que quisiera es que si compra un producto de la categoría «a» solo permita comprar del a, a.1, a.2 y a.3
La única modificación del código sería que dejase solo comprar en una categoría y sus subcategorías.
Sería de gran ayuda, por favor.
Muchas gracias.
Un saludo.`