# Kuponkód widget: dinamikus kuponlista

> Kuponok tárolása bejegyzésként, egy sor megtervezése sablonként, és a Dinamikus listázás widget, amely minden ajánlathoz külön működő kupont ad.

Egy ötven ajánlatos kuponoldalt nem érdemes ötven kézzel épített szakaszból összerakni. Minden ajánlatot tárolj bejegyzésként, tervezd meg egyszer a sort, és hagyd, hogy egy lista ismételje. Ez a fejezet a **Kuponkód** widgetet egy **Dinamikus lista** egyéni megjelenése belsejébe teszi, így minden ajánlat saját, működő kupont kap.

## Előkészületek

- A **Kuponkód** a Pro kiadás része, az ingyenes bővítményben nincs kuponwidget.
- Az Elementor (ingyenes) telepítve és aktív legyen.
- Kapcsold be a **Kuponkód** widgetet: **The Plus Addons → Widgets**, keress rá a **Coupon Code** szóra, és kapcsold be. Ez a **Widgets** képernyő, nem az **Extensions**.
- Ugyanitt kapcsold be a **Dynamic Listing** widgetet is (a szerkesztőben **Dinamikus listázás** a neve).
- Két további bővítmény kell: egy egyedi mezős bővítmény (például az Advanced Custom Fields) a bejegyzéstípushoz és a mezőkhöz, és az Elementor Pro a mezőket olvasó dinamikus címkékhez. Ezek nélkül a lista ismétlődik, de minden sorban ugyanaz a rögzített kód látszik.

## Az ajánlatok tárolása

Minden ajánlatnak valamilyen bejegyzésnek kell lennie, a változó adatoknak pedig mezői. A példa az Advanced Custom Fields bővítményt használja, de bármelyik bővítmény megteszi, amely bejegyzéstípust és egyedi mezőket ad.

1. Az irányítópultról menj az **ACF → Post Types** oldalra, és kattints az **Add New** gombra. Töltsd ki a **Plural Label**, **Singular Label** és **Post Type Key** mezőt. Ha később szűrni akarod a listát, vegyél fel **Category** besorolást a **Taxonomies** alatt. Mentsd.
2. Menj az **ACF → Field Groups** oldalra, kattints az **Add New** gombra, és vedd fel azokat a mezőket, amelyek minden ajánlathoz kellenek. Jó alap: márkanév, kép, kód, célcím, leírás, értékelés és érvényesség vége.
3. A **Settings → Location Rules** alatt kösd a csoportot az új bejegyzéstípushoz. Mentsd.
4. Vedd fel az ajánlatokat az új típusú bejegyzésként, és töltsd ki a mezőket.

A helyszínszabály (Location Rule) kapcsolja a mezőket a bejegyzéstípushoz.

## Egy sor megtervezése sablonként

1. Menj a **Sablonminták → Elmentett sablonok** oldalra, kattints az **Új hozzáadása** gombra, a típus legyen **Szakasz**, adj nevet, és kattints a **Sablonminta létrehozása** gombra.
2. Tervezd meg a sort. Egy háromoszlopos konténer jól működik. Add hozzá a terv által kért Elementor-widgeteket.
3. Mindegyiket tedd dinamikussá az Elementor **Dinamikus címkék** gombjával, a bejegyzéstípus megfelelő mezőjére mutatva.
4. Add hozzá a **Kuponkód** widgetet oda, ahová a kupon való. A **Kupon típusa** maradjon **Normál**, és válassz **Normál stílus** értéket.
5. Az **Kód** és az **Átirányítási hivatkozás** mezőt is dinamikus címkével töltsd ki, hogy minden bejegyzés a sajátját adja.
6. Kapcsold be az **Ismétlés** kapcsolót. Ez akadályozza meg, hogy a widget minden másolata ugyanazt az azonosítót használja (lásd lejjebb).
7. Tedd közzé a sablont.

Az ikonlista jó hely az apró betűs információknak: mi az ellenőrzött, hányan használták, és meddig érvényes az ajánlat.

Az utolsó két dinamikus címke magán a kuponon van: hová küldi a látogatót, és melyik kódot adja át.

## A lista megjelenítése

1. Add a **Dinamikus listázás** widgetet arra az oldalra, amelyen a listának lennie kell.
2. A **Tartalom elrendezése** szakaszban a **Bejegyzéslista típusai** értéke legyen **Normál oldal**.
3. A **Bejegyzés típusa** értéke a kuponok bejegyzéstípusa legyen.
4. A **Stílus** alatt válaszd az **Egyéni megjelenés** lehetőséget.
5. A **Sablonminta kiválasztása** listában válaszd ki a sor sablonját.
6. Az oszlopok számát az **Oszlopok kezelése** alatt add meg. Ha korábban besorolást vettél fel, az **Extra opciók** között kategóriaszűrőt is hozzáadhatsz.

Nyolc bejegyzésnél a lista nyolc sort ad, mindegyiknek saját kupongombbal. A kész lista a sor sablonjának megfelelő formázással jelenik meg a lapon.

## Miért számít az Ismétlés

A lista minden **Kuponkód** példánya ugyanabból a sablonból jön, ezért segítség nélkül mind ugyanazt az azonosítót és ugyanazt a felugró cél azonosítót hordozná. Az **Ismétlés** minden példányhoz hozzáfűzi az aktuális bejegyzés azonosítóját.

Nyolc bejegyzésből álló, közzétett listán mérve: nyolc kupon jelent meg, és mindegyik azonosítója a saját bejegyzésének azonosítójára végződött. Minden olyan kuponnál kapcsold be az **Ismétlés** kapcsolót, amely ismétlődő sablonban van.

## Működés

- A lista a teljes sablont ismétli. Nyolc bejegyzésből nyolc sor és nyolc független kupon lett.
- Minden kupon önálló widget. Az egyik felfedése nem fedi fel a többit.
- Az **Egyéni megjelenés** figyelmen kívül hagyja a beépített stílusokat. Ha a **Stílus** értéke **Egyéni megjelenés**, a lista a te sablonodat rajzolja, mást semmit.

Listában a **Kattintás** műveletet használd. A felugró ablak kezelői az egész oldalon közösek, ezért több felugró ablakos kupon egy listában zavarja egymást.

## Korlátok

- A megoldás a The Plus Addonson kívüli bővítményeket is kíván. A bejegyzéstípus és a mezők egy mezős bővítményből (például ACF) jönnek, az őket olvasó dinamikus címkék az Elementor Pro-ból. Ezek nélkül a lista ismétlődik, de minden sorban ugyanaz a rögzített kód látszik.
- Az **Ismétlés** alapból ki van kapcsolva. A kupon, amelyet bekapcsolása nélkül másolsz ismétlődő sablonba, furcsán viselkedik, és a tünet (egy kupon reagál mindegyik helyett) nem utal egyértelműen erre a beállításra.
- Soronként egy kuponwidget lehet. Ha két kupon van ugyanabban a sablonban, mindkettő ugyanazt a bejegyzésazonosítót kapja, így egymástól még mindig nem egyediek.
- Az ikonok üres négyzetként jelenhetnek meg: a widget ollóikonja és a **Bezáró ikon** Font Awesome-ot használ, amelyet a The Plus Addons magától nem tölt be.

## Hibaelhárítás

- **A lista üres:** nézd meg, hogy a **Bejegyzés típusa** egyezik-e azzal a típussal, amelyet az ajánlataid ténylegesen használnak, és hogy legalább egy közzé van-e téve.
- **Minden sor ugyanazt a kuponkódot mutatja:** a **Kód** még rögzített szöveg. Állítsd dinamikus címkével, hogy minden bejegyzés a saját mezőjét olvassa.
- **Az egyik kupon kattintása a másikra is hat:** kapcsold be az **Ismétlés** kapcsolót a sablon **Kuponkód** widgetjén, és a felugró ablak helyett a **Kattintás** műveletet használd.
- **A Sablonminta kiválasztása lista üres:** a **Stílus** nem **Egyéni megjelenés**, vagy a sablon még nincs közzétéve.
