Tovább a tartalomhoz

Elemfeltételek

Feltételek megadása bármelyik elemhez: csak akkor jelenik meg a weboldalon, ha a feltételek teljesülnek. Feltételcsoportok, AND/OR logika, WooCommerce feltételek.

Az elemfeltételekkel bármelyik elemhez egy vagy több feltételt adhatsz. Az elem csak akkor jelenik meg a weboldalon, ha a feltételek teljesülnek. A feltételeket a szerver értékeli ki, és adatok alapján (bejegyzés, felhasználó, dinamikus adat, dátum és idő stb.) szűrik ki az elemet. Ha az elem nem jelenik meg, a HTML-je egyáltalán nincs a forráskódban.

Jó például arra, hogy a tartalmat bejelentkezett felhasználókra vagy egy adott szerepkörre korlátozd (tagsági oldalak), időhöz kötött információt hétköznaphoz, dátumhoz vagy időponthoz kapcsolj, vagy dinamikus adat alapján rejts el tartalmat.

Az elemfeltétel megjelenítési logika. Felület, marketing, tagsági és terméktartalom elrejtésére jó, de nem helyettesíti a szerveroldali jogosultságokat az igazán érzékeny adatoknál, letöltéseknél és műveleteknél. Ha például elrejtesz egy letöltés gombot, a hivatkozás eltűnik az oldalról, de aki már ismeri a fájl URL-jét, az még megnyithatja. A privát fájlokat és műveleteket a tagsági, fájlvédelmi vagy jogosultsági megoldásoddal védd.

Ha teljes programozói szabadság kell, használd a bricks/element/render szűrőt.

Elem szerkesztésekor kattints a panel fejlécében a Feltételek ikonra, ezzel nyitod és zárod a feltételek felületét. Ha egy elemnek vannak feltételei, a Feltételek ikon a Szerkezet panelen is megjelenik az elem mellett. Erre kattintva egyből az elem feltételeihez ugrasz, így a Szerkezet panelen egy pillantással látod, melyik elemnek van feltétele.

https://minta-bolt.hu/elemek-teszt/?bricks=run
A Feltételek panel egy elemnél, megnyitott feltételválasztóval

A képen az elem panelje látszik a Feltételek felülettel és a Válassz feltételt legördülővel, amely a csoportokba rendezett feltételeket listázza (Bejegyzés, Felhasználó, Dátum és idő és így tovább). A panel tetején a „Kattints a „+” ikonra, hogy hozzáadd az első feltételt. A feltételek nem futnak a szerkesztőben.” üzenet jelzi, hogy a feltételek csak a weboldalon érvényesülnek.

Az elem megjelenéséhez legalább egy feltételcsoportnak teljesülnie kell. Egy csoporton belül minden feltételnek igaznak kell lennie. Vagyis a csoportok között VAGY, a csoporton belüli feltételek között ÉS kapcsolat van.

Az első csoport létrehozásához kattints a Feltételek cím melletti „+” ikonra. Ekkor egy csoport jön létre egy feltétellel. Minden feltétel három részből áll:

  • Kulcs: például bejegyzés-azonosító, felhasználói szerepkör, dátum, dinamikus adat.
  • Összehasonlító művelet: ==, !=, >, <, tartalmaz, előtt, után és így tovább.
  • Érték: szám, szöveg, jelölőnégyzet vagy kiválasztható lehetőségek.

A beépített feltételcsoportok és feltételek:

Csoport Feltételek
Bejegyzés Bejegyzés ID, Bejegyzés címe, Szülőbejegyzés, Bejegyzés állapota, Bejegyzés szerzője, Bejegyzés dátuma, Kiemelt kép
Felhasználó Felhasználónév, Felhasználói azonosító (ID), A felhasználó regisztrált, Felhasználói szerepkör
Dátum és idő A hét napja, Dátum, Idő, Dátum és idő (a WordPress webhelyidőzónája szerint)
WooCommerce Terméktípus, Termék akciós állapota, A termék újdonsági állapota, Termék készletállapota, Termék készletmennyisége, Termék készletkezelése, Egyenként értékesített termék, Felhasználó által megvásárolt termék, Kiemelt termék, Termék értékelése, Termékkategória, Termékcímke (csak aktív WooCommerce-nél)
Egyéb Dinamikus adatok, Böngésző, Operációs rendszer, Jelenlegi URL, Hivatkozó URL

A Jelenlegi URL feltétel a lekérdezési paramétereket is tartalmazza. A böngésző, az operációs rendszer és a hivatkozó ellenőrzése a kérés fejlécein múlik, ezért csak kényelmi célzásra használd, biztonsági ellenőrzésre ne.

Példa: egy elem csak bejelentkezett felhasználóknak jelenjen meg. Hozz létre egy feltételt, amely a felhasználó bejelentkezési állapotát ellenőrzi. Az elem csak akkor jelenik meg, ha az oldalt bejelentkezett felhasználó nézi. A vendégek, robotok és keresők nem látják, mert a forráskódban sincs ott.

A szerkesztőben az elem panelfejlécében kiemelt Feltételek ikon azt jelzi, hogy az elemnek vannak feltételei, anélkül hogy meg kellene nyitnod a felületet. Ugyanez az ikon a Szerkezet panelen is látszik az elem mellett, így gyorsan átfuthatod az oldal feltételeit. Rákattintva közvetlenül az elem feltételeihez jutsz.

A csoportok között VAGY, a csoporton belül ÉS kapcsolat van. Hozz létre egy második csoportot a jobb felső „+” ikonnal. Ha az új csoport feltétele az, hogy a bejegyzés címe „Fiók”, az elem akkor jelenik meg, ha (1) a felhasználó be van jelentkezve VAGY (2) a megtekintett oldal címe „Fiók”.

Ha egy csoporthoz még egy feltételt akarsz adni (ÉS kapcsolat), kattints az első feltétel jobb alsó sarkában lévő „+” gombra. Ekkor a feltételek között függőleges „ÉS”, a csoportok között vízszintes „VAGY” felirat jelenik meg, ami szemlélteti a logikát. Így megoldható például, hogy a bejelentkezett felhasználó regisztrációs dátuma 2022. január 1. előtt legyen.

A közös feltételt minden csoportba vedd fel

Szekció neve “A közös feltételt minden csoportba vedd fel”

A Bricks minden csoportot külön értékel ki. Egy csoporton belül az első nem teljesülő feltételnél megáll, és a következő csoportra lép. Az egyik csoportban lévő feltétel nem érvényes a többi csoportra. Ha egy követelmény minden esetben fennáll, add hozzá minden csoporthoz.

Példa: a „Receptkártya letöltése” gomb jelenjen meg bejelentkezett látogatóknak, vagy olyan receptnél, amely mindenkinek szabad, de csak ha a recepthez tényleg van kártyafájl:

    1. csoport: A felhasználó bejelentkezési állapota „Bejelentkezett”, ÉS a {acf_recipe_card} dinamikus adat nem üres.
    1. csoport: A {acf_card_access} dinamikus adat == Everyone, ÉS a {acf_recipe_card} dinamikus adat nem üres.

Ha a második csoportból kimarad a kártyaellenőrzés, a kártya nélküli ingyenes recepteknél is megjelenne a gomb.

Tartalom megjelenítése csak kitöltött mezőnél

Szekció neve “Tartalom megjelenítése csak kitöltött mezőnél”

Egy bejegyzéssablonban gyakran vannak olyan szakaszok, amelyeket nem minden bejegyzés tölt ki (videó, letöltés, „A szakács tippje” doboz). Feltétel nélkül az üres mezőjű bejegyzéseknél is megjelenne a szakasz címsora és egy üres lejátszó vagy doboz.

Adj a szakaszhoz Dinamikus adatok feltételt, válaszd ki a mezőt, az összehasonlítást állítsd „nem üres”-re, az értéket hagyd üresen. A szakasz ekkor csak azoknál a bejegyzéseknél jelenik meg, ahol a mező tartalmaz valamit.

A Dinamikus adatok feltételnél az „üres” és a „nem üres” összehasonlítás érhető el. Azt vizsgálják, hogy a címke kimenete üres szöveg-e, ezért egy soha ki nem töltött mező ugyanúgy üresnek számít, mint egy kiürített. Az „üres” segítségével tartalék tartalmat mutathatsz azoknál a bejegyzéseknél, ahol nincs érték.

  • A == és a != PHP-szerű laza összehasonlítást használ, és az összehasonlítás előtt átalakítja az olyan logikai jellegű értékeket, mint a true, false, 1, 0 és az üres szöveg. A számszerű összehasonlítások (>, <, >=, <=) a feloldott értékeket közvetlenül hasonlítják.
  • Többértékű mezőknél (felhasználói szerepkörök, bejegyzésállapotok, WooCommerce termékkategóriák és címkék) az „is” akkor igaz, ha bármelyik kiválasztott érték egyezik. Az „is not” akkor igaz, ha nincs egyezés.
  • A „tartalmaz” és „nem tartalmaz” szövegvizsgálat, szöveges értékekhez való (bejegyzéscím, dinamikus adat kimenete, URL, hivatkozó). Mindkettő hamis, ha az ellenőrzött érték üres, ezért a „nem tartalmaz” feltétel elrejti az elemet azoknál a bejegyzéseknél, ahol a mezőnek nincs értéke. Ha ezeknél is látszódnia kell, adj hozzá külön csoportot „üres” feltétellel.
  • Ha az összehasonlítást üresen hagyod, a feltétel ==-t használ.

Dinamikus adat összehasonlítása az értékkel

Szekció neve “Dinamikus adat összehasonlítása az értékkel”

Egyes dinamikus adatmezők (például ACF igaz/hamis, Metabox jelölőnégyzet-lista, rádiógomb, legördülő) értékkel és címkével is rendelkeznek. Ha az értékhez akarsz hasonlítani, használd a :value szűrőt a dinamikus adat címkén. Ha például a Metabox jelölőnégyzet-listában a blue érték van kiválasztva, a feltétel a :value szűrővel az értékre teljesül. Szűrő nélkül a lehetőség címkéjével hasonlítana.

WooCommerce pénztár- és rendelésfeltételek

Szekció neve “WooCommerce pénztár- és rendelésfeltételek”

Pénztár- és rendeléstudatos elrendezésekhez külön WooCommerce feltételek vannak:

  • Pénztár : Belépési lépés szükséges
  • Pénztár : Szállítás szükséges
  • Pénztár : Szállítási cím szükséges
  • Pénztár : A rendelés állapota
  • Rendelés : Szállítási cím szükséges
  • Rendelés : Letöltéseket tartalmaz

Használd őket a WooCommerce v2 pénztár, fizetés, köszönőoldal, rendelésnyugta, fiók „rendelés megtekintése” és más rendelésfüggő elrendezésekben, amikor egy tartalomnak csak adott pénztári vagy rendelési állapotnál kell megjelennie.

  • Pénztár : Belépési lépés szükséges: csak kijelentkezett vásárlónál „Igen”, és csak akkor, ha a WooCommerce → Beállítások → Fiókok és adatvédelem alatt be van kapcsolva a bejelentkezés a pénztárnál. A Pénztár v2 többlépéses szerkezete ezzel tartja összhangban a fiókbejelentkezési menüpontot, lépést és a „Vissza” gombot.
  • Pénztár : Szállítás szükséges: azt ellenőrzi, hogy a nem üres kosár tartalmaz-e szállítást igénylő terméket. Szállítási módokhoz és minden olyan Pénztár v2 szakaszhoz vagy lépéshez használd, amelyet a vásárlónak el kell érnie a szállítási mód kiválasztásához.
  • Pénztár : Szállítási cím szükséges: azt ellenőrzi, kell-e külön szállítási cím. „Nem” lehet, ha a WooCommerce a szállítást a számlázási címhez kényszeríti, noha a kosár továbbra is szállítást igényel, és a vásárlónak ki kell választania a szállítási módot.

Pénztár v2 elrendezésnél a Pénztár : Szállítás szükséges feltételt a szállítási lehetőségek burkolóján alkalmazd. Többlépéses elrendezésben ugyanazt a feltételt add a Szállítás lépésre és a hozzá tartozó navigációs elemre is. A Pénztár : Szállítási cím szükséges feltételt csak a „Szállítás másik címre” vezérlőn és a szállítási címmezőkön használd.

Ha a haladó moduláris elemek és a WooCommerce rendelés-visszavonás be van kapcsolva, a Fiók oldal v2 visszavonási állapotában használhatod a „Rendelés visszavonása képernyő” feltételt. Hasonlítsd az Adataid, Áttekintés vagy Megerősítés értékhez az „is” vagy „is not” összehasonlítással. A generált szerkezet ezeket a feltételeket már tartalmazza. Csak a weboldali kimenetet vezérlik, a szerkesztőben mindhárom szakasz látszik.

Fejlesztőknek: saját feltétel hozzáadása

Szekció neve “Fejlesztőknek: saját feltétel hozzáadása”

Az elemfeltételek felületét programozottan bővítheted három szűrővel. Az eredmény egy új feltételcsoport és feltétel a szerkesztőben.

1. lépés: feltételcsoport hozzáadása a bricks/conditions/groups szűrővel. A csoport neve legyen egyedi (érdemes előtaggal ellátni).

add_filter( 'bricks/conditions/groups', 'add_my_condition_group' );
function add_my_condition_group( $groups ) {
$groups[] = [
'name' => 'my_group',
'label' => esc_html__( 'My Group', 'my-plugin' ),
];
return $groups;
}

2. lépés: feltételek hozzáadása a bricks/conditions/options szűrővel. A példa az aktuális oldal bejegyzéstípusát hasonlítja a felhasználó értékéhez: az összehasonlítás legördülő „is” és „is not” lehetőséggel, az érték szövegmező.

add_filter( 'bricks/conditions/options', 'add_my_custom_condition' );
function add_my_custom_condition( $options ) {
$options[] = [
'key' => 'my_post_type',
'label' => esc_html__( 'Post Type (New)', 'my-plugin' ),
'group' => 'my_group',
'compare' => [
'type' => 'select',
'options' => [
'==' => esc_html__( 'is', 'my-plugin' ),
'!=' => esc_html__( 'is not', 'my-plugin' ),
],
'placeholder' => esc_html__( 'is', 'my-plugin' ),
],
'value' => [
'type' => 'text',
],
];
return $options;
}

3. lépés: a logika a bricks/conditions/result szűrővel. Add vissza true vagy false értékkel a feltétel eredményét; az ÉS és VAGY kapcsolatot a Bricks kezeli. A $condition változóban elérhető az compare (az összehasonlító művelet, lehet üres) és a value (a felhasználó értéke, lehet üres).

add_filter( 'bricks/conditions/result', 'run_my_custom_condition', 10, 3 );
function run_my_custom_condition( $result, $condition_key, $condition ) {
if ( $condition_key !== 'my_post_type' ) {
return $result;
}
$compare = isset( $condition['compare'] ) ? $condition['compare'] : '==';
$user_value = isset( $condition['value'] ) ? $condition['value'] : '';
$condition_met = false;
$current_post_type = get_post_type();
switch ( $compare ) {
case '==':
$condition_met = $current_post_type === $user_value;
break;
case '!=':
$condition_met = $current_post_type !== $user_value;
break;
}
return $condition_met;
}

Ha ugyanabba a csoportba több feltételt vettél fel, a \Bricks\Conditions::$options tömbben megkeresheted a regisztrált feltételt a kulcsa alapján, ellenőrizheted a csoportját, és kulcsonként switch segítségével futtathatod a saját logikádat.

Készült:

Tiszteletben tartjuk a magánszférádat

Sütiket használunk a böngészési élmény javítására és a forgalom elemzésére. Az analitika csak akkor indul, ha engeded. Adatvédelmi irányelvek, Sütitájékoztató.

Sütibeállítások