Tipikus felhasználási esetek:
- Prémium tartalom pontokért: „Ez a cikk 500 XP felett érhető el.”
- VIP zóna: csak az „Aranytagság” jelvénnyel rendelkezők látják.
- Fokozatos hozzáférés: „Haladó” szinttől olvasható tartalom.
- Motiváló elrejtés: promóciós szöveg, ami eltűnik, ha a felhasználó már teljesítette a feltételt (pl. „Iratkozz fel a hírlevélre!” eltűnik, ha már feliratkozott).
Hogyan működik?
Shortcode-dal, mint a Catalyst többi főbb modulja, viszont van egy fő különbség:
- a Catalyst modulok általában egyetlen shortcode-ból olvassák ki, hogy mit kell csinálniuk (például a egy ilyen önálló shortcode egy pontrendszer megjelenítésére),
- viszont a Korlátozott tartalmak shortcode-ja két blokkból áll, és a kettő közötti tartalmakat rejti el vagy mutatja meg.
A modul tehát úgynevezett wrapping vagy befoglaló shortcode-ot biztosít:
[catalyst_restrict]… [/catalyst_restrict]
A nyitó és záró shortcode közé bármit tehetsz (a három pötty helyére): más shortcode-ok, formázott szöveg, kép, videó, egyéb blokk-tartalom is működik.
A nyitó shortcode-ba tudsz különböző paramétereket beírni (például feltételeket: HA ez teljesül, AKKOR rejtsd el/mutasd meg). Amikor egy látogató megnyitja az oldalt, a rendszer megnézi, hogy megfelel-e a beállított feltételeknek, és ennek alapján dönti el, hogy megjelenjen-e a tartalom vagy sem.
Fontos alapszabály: nem bejelentkezett látogatók (vendégek) semmilyen módban nem látják a védett tartalmat.
Két működési mód (mode)
Ennek a shortcode-nak az egyik kötelező paramétere a mode paraméter. Itt kell megadnod, hogy ha a beállított feltétel igaz, akkor mutassa vagy elrejtse a tartalmat.
| Mód | Mikor jelenik meg a tartalom? |
|---|---|
mode=”show” (alapértelmezett) | Csak akkor, ha a felhasználó teljesíti a feltételt. |
mode="hide" | Csak akkor, ha a felhasználó még nem teljesítette a feltételt. Amint teljesíti, a tartalom eltűnik. |
Másképpen megfogalmazva:
- „show” esetén egészen addig rejtve van a tartalom, amíg a feltétel nem teljesül, és utána MUTATJA,
- „hide” esetén egészen addig mutatja a tartalmat, amíg a feltétel nem teljesül, és utána ELREJTI.
A hide módot például akkor érdemes használni, ha egy motiváló üzenetet (pl. „Szerezd meg a Kezdő jelvényt!”) a jelvény megszerzése után el akarsz tüntetni.
Feltételek
Négyféle feltételt állíthatsz be, ezek tetszőlegesen kombinálhatók. Minden feltétel elfogad vesszővel elválasztott listát is, ha egyszerre több elemet szeretnél megkövetelni.
required_points — Pontok
Formátum: "rendszer-slug:összeg"
required_points="gems:500"
required_points="gems:500,karma:100"
Jelentése: „a felhasználó egyenlege az adott pontrendszerben legyen legalább az adott érték”. Több pontrendszer esetén a logic beállítás szabja meg, hogy mindegyik szükséges-e vagy elég egy is.
required_badge — Jelvények
Formátum: jelvény slug (vagy több, vesszővel).
required_badge="vip"
required_badge="vip,aranytag"
Jelentése: „a felhasználó rendelkezzen a megadott jelvénnyel”. Több jelvény esetén a logic beállítás szabja meg, hogy mindegyik szükséges-e vagy elég egy is.
required_level — Szintek
Formátum: "szintrendszer-slug:szint-slug"
required_level="tanulo-utja:halado"
Jelentése: „a felhasználó érje el legalább a megadott szintet”. Fontos: a magasabb szintek is teljesítik a feltételt — tehát ha a példában valaki már „Szakértő” (ami magasabb szint, mint a Haladó), az is látja a „Haladó”-nak korlátozott tartalmat.
required_streak — Sorozatok
Formátum: "sorozat-slug:minimum_darabszám"
required_streak="napi-belepes:7"
Jelentése: „a felhasználó aktuális sorozata (jelenlegi darabszám) legyen legalább a megadott érték”.
Több feltétel kombinálása (logic)
Ha egyszerre több feltételt is beírsz, a logic paraméterrel szabhatod meg, hogyan kombinálódjanak:
| Érték | Jelentés |
|---|---|
and (alapértelmezett) | Minden feltétel teljesüljön. |
or | Legalább egy feltétel teljesüljön. |
Mi történjen, ha a felhasználó nem fér hozzá? (action)
Ez a beállítás csak mode="show" esetén releváns — hide módban a tartalom egyszerűen eltűnik, ha a feltétel teljesül, egyébként megjelenik.
| Érték | Mit lát a felhasználó? |
|---|---|
message (alapértelmezett) | Az általad írt message szöveg jelenik meg a tartalom helyén. |
hide | Semmi — a tartalom helye teljesen üres marad. |
tease | A védett tartalom első pár karaktere „ízelítőként” megjelenik (elmosott végződéssel), alatta az üzeneted. |
redirect | A látogató átirányítódik a redirect_url-re. |
Az action="tease" extra beállításai
Ha action="tease" paramétert adsz meg, akkor két további paramétert használhatsz:
tease_length— hány karakter jelenjen meg ízelítőként. Alapértelmezett:150.tease_blur— legyen-e homályos átmenet az ízelítő alján. Értékeyes(alapértelmezett) vagyno.
Az action="redirect" beállítása
Ha action="redirect" paramétert adsz meg, akkor két további paramétert használhatsz:
redirect_url— a cél URL, ahová a felhasználót át kell irányítani.redirect_button_label— ez lesz a gomb felirata, ami kattintás után átirányít (ha nem adod meg, a gomb felirata „Tovább” lesz)
Ezt érdemes a message="Ide jön az üzeneted" paraméterrel együtt használni, mert ezzel elmagyarázhatod a felhasználónak, miért nem látja az elrejtett dolgokat és mi történik a redirect gomb megnyomása után.
Az összes paraméter egyben
| Paraméter | Érték | Alapértelmezett |
|---|---|---|
mode | show / hide | show |
required_points | "rendszer:összeg" párok, vesszővel | üres |
required_badge | jelvény slug-ok, vesszővel | üres |
required_level | "szintrendszer:szint" párok | üres |
required_streak | "sorozat:darabszám" párok | üres |
logic | and / or | and |
action | message / hide / tease / redirect | message |
message | szöveg vagy HTML | üres |
tease_length | egész szám (karakter) | 150 |
tease_blur | yes / no | yes |
redirect_url | teljes URL | üres |
redirect_button_label | gomb felirat szöveg | üres |
Példák
VIP zóna jelvénnyel:
[[catalyst_restrict required_badge="vip" action="message" message="Ez a szekció csak VIP tagoknak elérhető."]]
<h2>VIP anyagok</h2>
Itt jönnek a különleges tartalmak…
[[/catalyst_restrict]]
Motiváló szöveg, ami eltűnik jelvény megszerzése után:
[[catalyst_restrict mode="hide" required_badge="elso-lepes"]]
👋 Üdv! Kezdd az „Első lépés" jelvény megszerzésével.
[[/catalyst_restrict]]
Fontos részletek
- Vendégek soha nem látják a védett tartalmat. Ez akkor is igaz, ha nincs feltétel megadva.
- Bejelentkezett felhasználó, feltétel nélkül = a tartalom mindig látszik. Ha nem adsz meg egy feltételt sem, a shortcode gyakorlatilag „csak bejelentkezettek” kapuvá válik.
- A slug-ok érzékenyek az elírásra. Ha egy nem létező rendszert vagy jelvényt adsz meg (elgépeled a slug-ot), a feltétel automatikusan hamis lesz, tehát senki nem fér hozzá. Érdemes ellenőrizni a slug-okat az adott modul admin felületén.
- A szintfeltétel „legalább” logikát használ. Aki magasabb szinten van, mint amit megadtál, szintén hozzáfér — nem kell külön minden magasabb szintre engedélyezni.
- A shortcode-ok egymásba ágyazhatók. A
catalyst_restrictbelsejében más shortcode-ok is működnek — így akár lépcsőzetes hozzáférést is építhetsz. - HTML az üzenetekben. A
messageparaméterben biztonságos HTML használható (linkek, félkövér, listák), de scriptek nem — a rendszer szűri a veszélyes tartalmat.
Shortcode használata Elementor, Divi, Avada és egyéb építők esetén
Ha valamilyen vizuális oldalépítőt használsz, akkor a használt shortcode-oknak egy picit módosított változatát kell alkalmaznod:
[catalyst_restrict_start]… [/catalyst_restrict_end]
Ezeknek a shortcode-oknak a működése egyébként pedig megegyezik a fenti shortcode-okkal:
- minden paraméter ugyanúgy használható,
- ezeket is párban kell használni (ne felejtsd el a záró shortcode-ot betenni, ahova szeretnéd),
- a két shortcode közé akármennyi egyéb blokkot betehetsz (például Elementorban Title, Text, Image, Carousel, satöbbi).
Extra lehetőség: JetEngine Dynamic Visibility
Ha Elementoros oldalad van, és használod a JetEngine plugint is, akkor annak a Dynamic Visibility tulajdonságát érdemes bekapcsolnod.
Ez azért jó, mert így Elementor szerkesztőben megnyitva egy adott oldalt, a kiválasztott blokk vagy konténer tulajdonságainál láthatósági feltételt (Dynamic Visibility) tudsz megadni – pont úgy, ahogy a shortcode esetén is megadhatsz minimum pontszámot, adott jelvényeket, minimum szintet, minimum sorozatot.
Példa:
Cache-re figyelj!
Page cache figyelmeztetés: ha az oldaladon full-page cache fut (LiteSpeed Cache, WP Super Cache, W3 Total Cache stb.), az olyan oldalakon, ahol ez a shortcode-pár szerepel, a cache-t ki kell zárni, vagy felhasználónkénti cache-t kell beállítani. Ellenkező esetben a cache-elt verzió az első látogató jogosultsága alapján jelenik meg mindenki számára. Ez minden tartalomkorlátozó megoldás közös sajátossága.