# Globális csoportok finomhangolása

> Globális csoportok más taxonómiával, gyermekkategóriákkal, közvetlen termékhozzárendeléssel és kizárt termékekkel.

A globális csoportok alapbeállításait a [Globális csoportok](https://hub.hellowp.io/hu/plugins/product-extras-for-woocommerce/globalis-csoportok/) fejezet írja le. Itt a haladó esetek következnek. A kódrészleteket a sablon `functions.php` fájljába vagy egy kódrészlet-kezelő bővítménybe másold.

## Globális csoport hozzárendelése közvetlenül egy termékhez

A szabályok mellett (**Termék szerint**) a globális csoportot a termék szerkesztőjéből is hozzárendelheted:

1. Nyisd meg a termék szerkesztőjét, és válaszd a **Product Add-Ons** fület.
2. A **Termékbeállítások** részben a **Globális csoportok hozzárendelése** mezőben válaszd ki a kívánt globális csoportokat.
3. Mentsd a terméket. A kiválasztott csoportok minden mezője érvényes lesz a termékre.

![A Globális csoportok hozzárendelése mező a terméknél](./kepek/csoportok-termek-beallitasok.webp)

*A Globális csoportok hozzárendelése mező a terméknél* (https://minta-bolt.hu/wp-admin/post.php?post=22&action=edit)

## Címke vagy attribútum a kategória helyett

A globális csoportok szabálya alapból a termékkategóriákra épül. Egy kódrészlettel egy adott csoportnál más taxonómiát, például termékattribútumot is használhatsz. A `pewc_filter_global_categories_taxonomy` szűrő négy paramétert kap (a taxonómia, a csoport azonosítója, a csoport és a szabály). Ha a csoport azonosítója egyezik, add vissza a kívánt taxonómia slugját, különben az eredeti értéket:

```php
function pelda_globalis_taxonomia( $tax, $group_id, $group, $rule ) {
    // Az 1234 helyére a csoport azonosítója, a pa_szin helyére a taxonómia slugja kerül.
    if ( 1234 == $group_id ) {
        return 'pa_szin';
    }
    return $tax;
}
add_filter( 'pewc_filter_global_categories_taxonomy', 'pelda_globalis_taxonomia', 10, 4 );
```

## A gyermekkategóriák termékei is kapják a csoportot

Ha egy globális csoport **Kategória szerint** szabályánál a szülőkategóriát választod, a gyermekkategóriák termékei alapból nem kapják meg a csoportot. A `pewc_filter_permitted_cats` szűrővel a kiválasztott kategóriák gyermekkategóriái is bekerülhetnek az engedélyezettek közé:

```php
add_filter( 'pewc_filter_permitted_cats', function ( $kategoriak ) {
    if ( empty( $kategoriak ) ) {
        return $kategoriak;
    }
    foreach ( $kategoriak as $kategoria_id ) {
        $gyerekek = get_term_children( $kategoria_id, 'product_cat' );
        if ( ! empty( $gyerekek ) && ! is_wp_error( $gyerekek ) ) {
            $kategoriak = array_merge( $kategoriak, $gyerekek );
        }
    }
    return array_unique( $kategoriak );
}, 10, 4 );
```

Utána a globális csoport szabályánál elég a szülőkategóriát kiválasztani.

## Termékek kizárása a globális csoportokból

Ha bizonyos termékek ne kapjanak globális csoportot (például azért, mert a csoport minden termékre vonatkozik), két szűrőt használj: a `pewc_after_verify_all_products` a **Minden termék esetén** szabályt, a `pewc_after_pewc_verify_categories_rule` a kategóriaszabályt vizsgálja. Mindkettő négy paramétert kap: az eredményt, a termék azonosítóját, a globális csoportot és a szabályt. A kizárt termékeknél `false` értéket adj vissza:

```php
function pelda_kizart_termekek( $ellenorzott, $termek_id, $csoport, $szabaly ) {
    // A kizárt termékek azonosítói.
    $kizartak = array( 123, 456 );
    if ( in_array( (int) $termek_id, $kizartak, true ) ) {
        return false;
    }
    return $ellenorzott;
}
add_filter( 'pewc_after_verify_all_products', 'pelda_kizart_termekek', 10, 4 );
add_filter( 'pewc_after_pewc_verify_categories_rule', 'pelda_kizart_termekek', 10, 4 );
```

Cseréld a mintában szereplő azonosítókat a sajátjaidra.

## Kapcsolódó fejezetek

- [Globális csoportok](https://hub.hellowp.io/hu/plugins/product-extras-for-woocommerce/globalis-csoportok/)
- [Variációfüggő mezők és globális csoportok attribútum szerint](https://hub.hellowp.io/hu/plugins/product-extras-for-woocommerce/feltetelek-variaciok-es-attributumok/)
