# Kiemelt lista készítése

> Kiemelt bejegyzések a lista tetején, és kiemelt bejegyzések megjelenítése sikeres fizetés után.

Két megoldás van: a kiemelt bejegyzések a lista elejére kerülnek, vagy csak sikeres fizetés után látszanak. Előfeltétel: Elementor (az ingyenes változat elég), blokkszerkesztő vagy Bricks, aktív JetEngine. A fizetéses változathoz kell még a JetFormBuilder (PayPal ismétlődő fizetések kiegészítővel) és a JetPopup.

## Kiemelt bejegyzések a lista tetején

A listát a „kiemelt” metamező szerint rendezed, így a kiemeltek előre kerülnek.

### A „Kiemelt” metamező

A példában a **Kapcsoló** típusú metamező jelzi, hogy a bejegyzés kiemelt.

1. Nyisd meg a **JetEngine → Bejegyzéstípusok** oldalt, és szerkeszd a bejegyzéstípust (a példában a „Szolgáltatások”) vagy hozz létre újat.
2. Görgess le a **Metamezők** részhez, és kattints az új metamező gombra.
3. Add meg a **Címkét**, a **Mező típusa** legyen **Kapcsoló**.
4. Kattints a mentés gombra.
5. A bejegyzések szerkesztésénél kapcsold be a kapcsolót a kiemelni kívánt elemeknél, majd mentsd őket.

### Listázási sablon

Készíts sablont a bejegyzéstípushoz (lásd [Listázási sablon áttekintése](https://hub.hellowp.io/hu/plugins/jet-engine/listazas-listazasi-sablon/)). A példában két **Dynamic Field** widget írja ki a címet és a rövid leírást, egy Elementor **Button** widget pedig a „kiemelt” címkét adja.

A címke csak a kiemelt elemeknél látszódjon:

1. A gomb **Advanced** fülén nyisd meg a **Dynamic Visibility** szakaszt, és kapcsold be az **Enable** kapcsolót.
2. Válaszd a **Switcher enabled** feltételt.
3. A **Field** mező melletti dinamikus címke ikonnal válaszd a JetEngine csoport **Custom Field** elemét.
4. A felugró ablakban válaszd ki a mezőt (itt a „Kiemelt” mezőt).
5. Közzétett sablon.

### Egyéni lekérdezés a rendezéshez

1. A **JetEngine → Lekérdezéskészítő** oldalon kattints az **Új hozzáadása** gombra.
2. Add meg a nevet, a lekérdezés típusa maradjon **Posts Query**. Az általános fülön válaszd ki a bejegyzéstípust.
3. Az **Order & Order By** szakaszban az **Order By** értéke legyen **Order by string meta value**, a **Meta Key** a kapcsoló mezőneve (itt „featured”), az **Order** pedig **From highest to lowest values (3,2,1; c, b, a)**.
4. Mentsd a lekérdezést.

![A Lekérdezéskészítő lekérdezéseinek listája](./kepek/listazas-1-lekerdezesek.webp)

*A Lekérdezéskészítő lekérdezéseinek listája* (https://minta-bolt.hu/wp-admin/admin.php?page=jet-engine-query)

A képen a lekérdezések listája látszik, az **Új hozzáadása** gombbal veheted fel az újat.

### A lista az oldalon

Az oldalon add hozzá a **Listing Grid** widgetet, válaszd ki a sablont, nyisd meg a **Custom Query** szakaszt, kapcsold be a **Use Custom Query** kapcsolót, és válaszd ki az imént létrehozott lekérdezést. A frontenden a kiemelt elemek a lista elején vannak, a címkével.

## Kiemelt bejegyzések fizetés után

Itt a **Dynamic Visibility** csak egy meghatározott szerepkörű felhasználónak mutatja a kiemelt elemeket. Egy űrlap sikeres fizetés után átállítja a felhasználó szerepkörét.

### Az űrlap

Készíts a JetFormBuilderben olyan űrlapot, amely előfizetés sikeres fizetése után feliratkozó (subscriber) szerepkörre állítja a felhasználót. A példában egy **Hidden Field** kéri le az aktuális felhasználó azonosítóját, egy **Checkbox Field** a feltételek elfogadását, és van egy **Action Button**. Mentsd az űrlapot.

### Felugró ablak

Az űrlapot közvetlenül az oldalra is teheted, a példa JetPopup ablakot használ:

1. Menj a **JetPopup → Create New Popup** oldalra, add meg a címet, közzétéve nyisd meg az Elementorral.
2. Húzd be a **JetForm** widgetet, és válaszd ki az űrlapot. Tedd közzé.
3. Állítsd be az ablak feltételeit (Conditions). Nélkülük az ablak nem biztos, hogy megnyílik a frontenden.

### Két lekérdezés

Két Posts Query kell: az egyik csak a kiemelt, a másik csak a többi bejegyzést adja.

1. Hozz létre egy Posts Query-t a bejegyzéstípussal (a példában „Szolgáltatások”).
2. Nyisd meg a **Meta Query** fület, és kattints a **+Add new clause** gombra.
3. A **Field key/name** mezőbe írd a kapcsoló mezőnevét (használhatod a „JetEngine meta field” makrót is). A **Compare** legyen **Equal (=)**, az **Value** értéke `true`, a **Type** pedig **Char**.
4. Mentsd. Másold le a lekérdezést (vagy hozz létre újat), és a másodikban a **Value** legyen `false`.

### Az oldal felépítése

1. Add hozzá az első **Listing Grid** widgetet a „true” lekérdezéssel.
2. A **Advanced → Dynamic Visibility** szakaszban kapcsold be a láthatóságot. A típus **Show element if condition met**, a feltétel **User Role is not**, a szerepkör **Subscriber**.
3. Add hozzá a második **Listing Grid** widgetet a „false” lekérdezéssel.
4. Add hozzá a **Button** widgetet, a szövege „Kiemelt szolgáltatások megnyitása”. A **Advanced → JetPopup** fülön csatold a felugró ablakot, a **Trigger Type** legyen **Click on Button**.
5. Közzététel.

### Az eredmény

Vendégként csak a nem kiemelt elemek és a gomb látszik; a gombra kattintva megnyílik az ablak az űrlappal. Sikeres fizetés után a felhasználó visszakerül az oldalra, és a **Dynamic Visibility** már mutatja a kiemelt elemeket, vagyis a szerepkör módosult.

Teszteléshez használj egy második, ügyfél szerepkörű fiókot. Ha a főfiókkal küldöd el az űrlapot, az adminisztrátori szerepköröd előfizetőre változhat.

## Kiemelt bejegyzések a Lekérdezéskészítővel

Ez a megoldás a kiemelt elemeket külön lekérdezéssel szűri, így csak azok jelennek meg a listában. Előfeltétel az Elementor (az ingyenes változat elég) és az aktív JetEngine.

### Alap WordPress-bejegyzések

1. A **JetEngine → Metaboxok** oldalon kattints az **Új hozzáadása** gombra. A **Forrás** legyen **Bejegyzések**, és vegyél fel egy **Kapcsoló** típusú metamezőt. Sok bejegyzésnél inkább a **Jelölőnégyzet** típust használd.
2. Mentsd a metaboxot az **Add/Update Meta Box** gombbal, majd minden bejegyzésnél állítsd be a kapcsolót (be vagy ki). Ezt bejegyzésenként kell elvégezned.
3. A **JetEngine → Listázások/komponensek** oldalon hozz létre sablont: a **Listing source** **Posts**, a nézet Elementor. A kapcsoló értékét a **Dynamic Field** widget kapcsolóhoz való visszahívásával (callback) írhatod ki.
4. A **JetEngine → Lekérdezéskészítő** oldalon hozz létre egy bejegyzés-lekérdezést, és a **Meta Query** részben add meg a **Field key/name** mezőt. A **Compare** legyen **Equal**, a **Value** pedig `true` (bekapcsolt kapcsolónál `true`, kikapcsoltnál `false`). Mentsd az **Add/Update Query** gombbal.
5. Az Elementor-oldalon add hozzá a **Listing Grid** widgetet, a **Custom Query** részben kapcsold be a **Use Custom Query** kapcsolót, és válaszd ki a lekérdezést. Mentsd az oldalt.

### Egyéni bejegyzéstípus

1. A **JetEngine → Bejegyzéstípusok** oldalon szerkeszd (vagy hozd létre) a bejegyzéstípust, és a **Metamezők** részben vegyél fel egy **Jelölőnégyzet** típusú mezőt két lehetőséggel: „featured” és „not featured”. Mentsd az **Update Post Type** gombbal.
2. A bejegyzéseknél jelöld be a „featured” értéket a kiemelni kívánt elemeknél, és frissítsd őket.
3. Hozz létre listázási sablont ehhez a bejegyzéstípushoz. A jelölőnégyzet kiírásához a **Dynamic Field** widget **Source** mezője legyen **Meta Data**, add meg a metamezőt, kapcsold be a **Filter field output** kapcsolót, és válaszd a **Checkbox field values** visszahívást.
4. A Lekérdezéskészítőben hozz létre bejegyzés-lekérdezést a bejegyzéstípussal. A **Meta Query** részben a **Field key/name** mezőnél a dinamikus címke gombbal válaszd a **JetEngine meta field** makrót, a **Compare** legyen **Regexp**, és a **Value** mezőbe írd be a keresett értéket, attól függően, melyik bejegyzéseket akarod mutatni. Mentsd a lekérdezést.
5. Az oldalon a **Listing Grid** widgetnél válaszd ki a sablont, kapcsold be a **Use Custom Query** kapcsolót, és válaszd ki a lekérdezést. A frontenden csak a kiemelt bejegyzések látszanak.
