# Feltételes mezők és feltételes érvényesítés

> Mezők elrejtése vagy letiltása más mezők értéke alapján, és az űrlap érvényesítése ugyanazokkal a kifejezésekkel.

## Feltételes mezők

A **Feltételes mezők** kiegészítés egy mezőt elrejt vagy letilt más mezők tartalma alapján. A beállítás a mező **Feltételek** lapján van.

![Az Életkor mező Feltételek lapja](./kepek/elementor-pro-form-feltetelek.webp)

*Az Életkor mező Feltételek lapja* (https://minta-bolt.hu/wp-admin/post.php?post=63&action=elementor)

- A **Feltétel** választóval három állapot közül választasz: mindig látható (pipa), megjelenítés, ha a feltétel igaz (szem), elrejtés, ha a feltétel igaz (áthúzott szem).
- A **Feltételkifejezések** mezőbe írod a feltételt. Soronként egy feltétel jöhet, a sorok **és** kapcsolatban állnak. Ha **vagy** kapcsolat kell, használd az `or` operátort egy soron belül.
- A **Csak letiltás** kapcsoló a mezőt nem elrejti, hanem letiltja.

A kifejezések írásához a **Conditions Generator** online eszköz is használható, amely összerakja a kifejezést.

### Amire figyelj

- A feltételek **kis- és nagybetűre érzékenyek**: az `option` nem azonos az `Option` értékkel.
- Hiba esetén az űrlap kiírja a hibás mező azonosítóját. A javításhoz nyisd meg az Elementor szerkesztőt, jelöld ki a mezőt, és nézd meg a **Feltételek** lapját.
- A kifejezésekben a mezőket az **azonosítójukkal** hívod meg (nem a címkéjükkel).

### Példák mezőtípusonként

Szám mező:

```text
Mezo1 >= 5
Mezo1 == Mezo2 + 5
Kor >= 18 and Kor <= 45
```

Szöveges mező:

```text
Mezo == "Joe"
Mezo in ["a", "b", "c"]
Mezo matches "/hello/"
```

Jelölőnégyzet (volt-e kiválasztva az „opcio” elem):

```text
"opcio" in JelolonegyzetMezo
```

Rádió vagy egyszeres választó:

```text
Radio == "opcio"
```

Többszörös választó:

```text
"opcio" in TobbszorosValaszto
```

Elfogadás mező: elég az azonosítóját beírni, a bejelölt mező igaz értéket ad.

```text
ElfogadasMezo
```

Dátum (a választott dátum 1453. április 6. és 1453. május 29. között van, a határokat is beleértve):

```text
datum >= "1453-04-06"
datum <= "1453-05-29"
```

Két mező egyezése:

```text
Email == EmailMegerosites
```

### A feltételek szintaxisa

A feltételek egy szövegmezőbe kerülnek, soronként egy. A sorok mind **és** kapcsolatban vannak, tehát

```text
Mezo1 == "a"
Mezo2 == "b"
```

egyenértékű ezzel:

```text
(Mezo1 == "a") and (Mezo2 == "b")
```

Vagy kapcsolathoz:

```text
(Mezo1 == "a") or (Mezo2 == "b")
```

### Két számmező összehasonlítása

A HTML miatt minden mező valójában szöveg. Számmal való összehasonlításnál ez nem gond: ha a `Mezo` értéke 10, a `Mezo > 5` igaz. Ha viszont **két mezőt** hasonlítasz össze, a rendszer szótári (szöveges) összehasonlítást végez, ezért a `Mezo > MasikMezo` hamis lehet akkor is, ha számszerűen igaz. Az egyik oldalt számmá kell alakítani a `| 0` szintaxissal:

```text
(Mezo | 0) > MasikMezo
```

### Üres lépések átugrása

Többlépéses űrlapnál, ha egy lépés összes mezője a feltételek miatt láthatatlan, a lépést a rendszer automatikusan átugorja. Ez az első és az utolsó lépésre nem működik.

### Kötelező mezők

Az a kötelező mező, amely a feltételei szerint láthatatlan, nem számít. A látható kötelező mezőt a böngésző és a szerver is ellenőrzi. A megbízható működéshez a mező feltételeiben csak olyan mezők szerepeljenek, amelyek az űrlapban előtte állnak.

## Feltételes érvényesítés

A **Feltételes érvényesítés** szekció ugyanazokat a kifejezéseket használja, de a beküldés előtt az egész űrlapot érvényesíti. Alapból ki van kapcsolva. Az űrlap csak akkor érvényes, ha **minden** feltétel igaz.

![A Feltételes érvényesítés szekció egy feltétellel](./kepek/elementor-pro-form-feltetel-ervenyesites.webp)

*A Feltételes érvényesítés szekció egy feltétellel* (https://minta-bolt.hu/wp-admin/post.php?post=63&action=elementor)

Például a `nev == 'Joe'` feltétellel a **nev** mezőben csak a „Joe” érték érvényes, bármi más hibát ad.

Egy feltétel beállításai:

| Beállítás | Mit csinál |
|---|---|
| **Kikapcsolás** | A feltételt kikapcsolja, de megtartja. |
| **Kifejezés** | A feltétel kifejezése, a feltételes mezőkkel azonos szintaxissal. |
| **Hibaüzenet** | A szöveg, amely akkor jelenik meg, ha a feltétel hamis. |
| **A hibához csatolandó mező ID-je (opcionális)** | Az a mező, amelynél a hiba megjelenik. Ha üres, az általános hiba az űrlap alján látszik. |
| **Ha ez a feltétel nem teljesül, a küldésgomb legyen** | A küldés gombja ilyenkor látható, rejtett vagy letiltott lesz. A rejtett állapotban a gomb meg sem jelenik, amíg a feltétel nem teljesül. |

### Lassulás esetén

Ha az űrlap lassul, és van benne **Számoló** mező, állítsd annak **Frissítés ekkor** beállítását **Változás** értékre a **Beviteli mező** helyett (lásd a Számoló mező fejezetét).

## Feltételes küldés utáni műveletek

Az Elementor Pro űrlap több küldés utáni műveletét feltételhez kötheted, így a művelet csak akkor fut le, ha a feltétel teljesül. Ez a **MailChimp**, az **ActiveCampaign**, a **Webhook**, a **MailerLite** és a **MailPoet** művelet szekciójában érhető el.

![A Webhook szekció a Művelet feltételes futtatása kapcsolóval és a Kifejezés mezővel](./kepek/elementor-pro-form-feltetel-webhook.webp)

*A Webhook szekció a Művelet feltételes futtatása kapcsolóval és a Kifejezés mezővel* (https://minta-bolt.hu/wp-admin/post.php?post=64&action=elementor)

1. Az **Űrlap szerkesztése** panelen, a **Küldés utáni műveletek** között vedd fel a műveletet (például **Webhook**).
2. Nyisd meg a művelet szekcióját, és kapcsold be a **Művelet feltételes futtatása** kapcsolót.
3. A **Kifejezés** mezőbe írd a feltételt. Soronként egy feltételt adj meg, a sorok **és** kapcsolatban állnak, tehát a művelet csak akkor fut, ha mindegyik igaz. A kifejezések szintaxisa ugyanaz, mint a feltételes mezőké (lásd fent), a kifejezés megírásában a **Conditions Generator** online eszköz is segít.

Példák, amikor ez hasznos:

- A MailChimp-művelet csak akkor fusson, ha az életkor mező értéke legalább 18 (`kor >= 18`).
- Egy választómezővel megkérdezed, hová kerüljön a látogató: ha az egyik választ adja, a MailChimp-listára iratkozik fel, ha a másikat, a Webhook egy táblázatba küldi az adatait. A két műveletnél ellentétes feltételt adsz meg.
- A Webhook csak akkor hívódjon meg, ha egy választómező adott értéket vesz fel.
