# Feltételes logika

> Metamezők és metaboxok megjelenítésének szabályozása feltételekkel: szabályok, műveletek, kapcsolat és láthatósági feltételek.

A feltételes logika megmondja, hogy egy metamező mikor látszik a szerkesztőoldalon. Használhatod nyitvatartási idők, időpontok megjelenítéséhez, további termékadatok felkínálásához csak bizonyos felhasználóknak, vagy szállítási módok felkínálásához a bolt kezelőjének. Ugyanez a szolgáltatás a JetFormBuilder űrlapmezőinél is megvan.

A feltételes logikával:

- megjeleníthetsz vagy elrejthetsz mezőket, ha egy vagy több feltétel teljesül;
- egyszerre több szabályt is alkalmazhatsz egy mezőre vagy mezők csoportjára;
- a mező értékét előre megadott értékhez hasonlíthatod (az **Érték** mezővel).

A metaboxokra a **Láthatósági feltételek** rész vonatkozik: ezzel a dobozt egészében jeleníted meg vagy rejted el, a dobozon belüli mezőkre pedig külön feltételes logika állítható be.

## Feltételes logika egy metamezőhöz

A beállítás egyaránt elérhető az egyedi bejegyzéstípusok mezőinél (**JetEngine → Bejegyzéstípusok**) és a metaboxok mezőinél (**JetEngine → Metaboxok**).

1. Nyisd meg a bejegyzéstípus vagy a metabox szerkesztőjét, és a **Metamezők** részben nyisd ki a kívánt mezőt.
2. A mező alján, a **Feltételes logika** sorban kattints a **Feltételes szabályok beállítása** gombra.
3. A felugró ablakban kapcsold be a **Feltételes logika engedélyezése** kapcsolót.
4. Kattints az **Új szabály** gombra, és add meg a szabályt:
   - **Mező**: melyik mező értékét vizsgálja a szabály;
   - **Adatfeldolgozó**: a vizsgálat módja (lásd lent);
   - **Érték**: az az érték, amellyel a mező tartalmát összehasonlítja.
5. Ha több szabályt veszel fel, a **Kapcsolat** listában megadod, hogyan függnek össze: **És** (mind teljesüljön) vagy **Vagy** (elég az egyik).
6. Zárd be az ablakot, és mentsd a bejegyzéstípust vagy a metaboxot (a metaboxnál a **Metabox frissítése** gombbal).

![A feltételes logika ablaka egy szabállyal](./kepek/meta-mezok-feltetelek-ablak.webp)

*A feltételes logika ablaka egy szabállyal* (https://minta-bolt.hu/wp-admin/admin.php?page=jet-engine-meta&cpt_meta_action=edit&id=meta-1)

A képen a „Szobatípus” mező szabálya látszik: a mező csak akkor jelenik meg, ha az **Ágyak száma** értéke **Egyenlő** 2-vel.

Egy szabály fejlécén a másolás és a törlés ikon is ott van: a szabályt megkettőzheted vagy törölheted.

Az **Adatfeldolgozó** lista értékei:

- **Egyenlő**: a függő mező akkor látszik, ha a két érték megegyezik;
- **Nem egyenlő**: a függő mező addig látszik, amíg az **Érték** mezőben megadott érték nem egyezik a kiválasztott mező értékével;
- **A listában** és **Nincs a listában**: választógomb, kiválasztás és jelölőnégyzet típusú mezőknél használhatók; a függő mező akkor látszik (illetve addig látszik), ha a listából kiválasztott érték (jelölőnégyzetnél értékek) megegyezik az **Érték** mezőbe írttal;
- **Üres** és **Nem üres**: a függő mező akkor látszik, ha a kiválasztott mezőnek nincs értéke, illetve van értéke;
- **Nagyobb, mint** és **Kisebb, mint**: számértékek összehasonlítása.

Ha a listádban újabb műveletek is szerepelnek, ezek így működnek: **Tartalmazza** és **Nem tartalmazza** (az érték tartalmazza-e a megadott szöveget vagy számot), **Reguláris kifejezés** és **Nem felel meg a reguláris kifejezésnek** (az érték illeszkedik-e a megadott mintára), valamint a **Karakterek száma nagyobb, mint** és **Karakterek száma kisebb, mint** (az érték hossza a megadott számnál nagyobb, illetve kisebb).

A **Mező** és az **Adatfeldolgozó** kiválasztása után jelenik meg az **Érték** mező. Ha a kiválasztott mezőnek előre megadott opciói vannak (választógomb, kiválasztás, jelölőnégyzet), az értéket listából választod, más mezőknél beírod.

Több szabálynál az alapértelmezett kapcsolat az **És**: a mező csak akkor látszik, ha minden feltétel teljesül. Ha elég az egyik is, válaszd a **Vagy** kapcsolatot.

### Példa

Egy bejegyzéstípusban a „Munkakör leírása” szövegterület csak akkor látszik, ha egy szám mező értéke nagyobb 5000-nél: a szövegterület szabálya a szám mezőt vizsgálja a **Nagyobb, mint** művelettel és az 5000-es értékkel. A bejegyzés szerkesztésekor a szövegterület megjelenik, ha a szám 5000-nél nagyobb, és eltűnik, ha kisebb.

## Láthatósági feltételek a metaboxon

A metabox szerkesztőjében a **Láthatósági feltételek** részben az **+ Új feltétel** gomb listát nyit a lehetséges feltételekről. Egy metabox így megjeleníthető vagy elrejthető a felhasználói szerepkör és a taxonómia-kifejezések szerint is. A választható feltételek: **Include Posts** és **Exclude Posts** (adott bejegyzések), **Included for User Roles** és **Excluded for User Roles** (szerepkörök), **Post Has Taxonomy Terms** (a bejegyzéshez rendelt kifejezések) és **Taxonomy**.

A **Bekapcsolás bejegyzéstípusoknál** mező kötelező, mert ez adja meg, hol érvényesülnek a feltételek. Bejegyzésre szóló metaboxnál az **+ Új feltétel** listában ezek vannak:

| Feltétel | Mit csinál |
| --- | --- |
| **Bejegyzések bevonása** | Megadod azokat a bejegyzéseket, amelyeknél a metabox látszik. |
| **Bejegyzések kizárása** | Megadod azokat a bejegyzéseket, amelyeknél a metabox nem látszik. |
| **Engedélyezve a felhasználói szerepköröknél** | A metabox csak a megadott szerepköröknek látszik. |
| **Kizárás felhasználói szerepkörök esetén** | A megadott szerepkörök nem látják a metaboxot. |
| **A bejegyzés osztályozási kifejezésekkel rendelkezik** | Kiválasztod az osztályozást, és megadod a kifejezések nevét. |

Annyi feltételt veszel fel, amennyi kell.

Ha a **Meta doboz célja** **Osztályozás (taxonomy)**, a feltételekhez az osztályozásokat választod ki (**Bekapcsolás taxonómiáknál**), és csak két feltétel érhető el: a felhasználói szerepkörökre szóló engedélyezés és kizárás.

![Új metabox osztályozás célra, az Új feltétel listával](./kepek/meta-mezok-lathatosag-taxonomia.webp)

*Új metabox osztályozás célra, az Új feltétel listával* (https://minta-bolt.hu/wp-admin/admin.php?page=jet-engine-meta&cpt_meta_action=add)

A képen az osztályozásra szóló metabox látszik: a **Bekapcsolás taxonómiáknál** mezőben választod ki az osztályozásokat, alatta az **Új feltétel hozzáadása** listában a feltételeket.

Felhasználói metaboxnál a **Látható itt** listában választhatsz: a **Felhasználó szerkesztése** csak az admin Felhasználó szerkesztése oldalán mutatja a mezőket (ezt csak adminisztrátorok érik el), a **Felhasználó és profil szerkesztése** a felhasználó saját profiloldalán is. Itt is ugyanaz a két szerepkörös feltétel érhető el.

Ha ugyanazt a metaboxot bejegyzéshez és felhasználóhoz is szeretnéd, két metaboxot kell létrehoznod, mert a **Meta doboz célja** nem bővíthető több célra.

Egy feltétel kitöltése után az **Új feltétel** gombbal újabbat veszel fel. A metabox mezőire a fent leírt feltételes logika külön is beállítható. Végül kattints a **Metabox hozzáadása** vagy **Metabox frissítése** gombra.
