Tovább a tartalomhoz

Calculated Callback kiegészítő

Számtani műveletek a Dynamic Field widgetben a Calculated Callback kiegészítővel: százalékos növelés és csökkentés, összeg, különbség, szorzás, egyéni visszahívás.

A Calculated Callback kiegészítő a Dynamic Field widgethez ad számítási visszahívásokat, így a megjelenített számmező értékén közvetlenül műveleteket végezhetsz.

Előfeltételek: Elementor (az ingyenes is elég) vagy a blokkszerkesztő; aktív JetEngine, és egy egyedi bejegyzéstípushoz létrehozott listázási sablon. A kiegészítő Szám típusú metamezőkkel működik, ezért vegyél fel ilyen mezőt a típushoz, és töltsd ki néhány bejegyzésnél.

A kiegészítő külön bővítményként települ.

  1. Töltsd le a Calculated Callback kiegészítőt a JetEngine fejlesztői eszközök oldaláról, zip fájlként.
  2. Nyisd meg a Bővítmények → Új hozzáadása oldalt, és kattints a Bővítmény feltöltése gombra.
  3. Válaszd ki a zip fájlt (vagy húzd a jelölt területre), majd kattints a Telepítés most gombra.
  4. A telepítés után kattints a Bővítmény aktiválása gombra.
  1. Nyisd meg azt a sablont, ahová a számított értéket szeretnéd tenni: listázási elemet, egyedi bejegyzés- vagy archívumsablont.
  2. Add hozzá a Dynamic Field widgetet. A Forrás legyen Metaadat, a Meta mező pedig a számmező (például a napi ár). Ennek Szám típusúnak kell lennie, hiszen számtani műveletet végzel vele.
  3. Kapcsold be az A mező kimenetének szűrése kapcsolót.
  4. A Visszahívás listában válaszd a Calculated field értéket.
  5. A Calculated callbacks listában válaszd ki a kívánt műveletet. A további beállítás az Additional arguments mezőben van.

A számított visszahívások:

Visszahívás Működés
Növelés százalékkal Az Additional arguments mezőbe írt százalékkal megnöveli az értéket, az eredményt azonnal kiírja.
Csökkentés százalékkal Az Additional arguments mezőbe írt százalékkal csökkenti az értéket.
Mezők összege Az Additional arguments mezőbe annak a metamezőnek a kulcsát írd, amelyet a forrásmező értékéhez adni szeretnél.
Mezők különbsége Az Additional arguments mezőbe annak a mezőnek a kulcsát írd, amelynek értékét kivonod a forrásmezőéből.
Mezők szorzata Az Additional arguments mezőbe a második tényezőként használt metamező kulcsát írd. Ha a második mező értéke 8, az alapár nyolcszorosa jelenik meg.
Egyéni visszahívás Saját PHP-függvény (lásd lent).

Mielőtt a kódot a sablonba másolod, készíts biztonsági mentést, vagy próbáld ki egy tesztoldalon, hogy hiba esetén vissza tudd állítani a webhelyet.

  1. A kiegészítő példakódját illeszd be az aktív sablon functions.php fájljába (például a Megjelenés → Témafájl-szerkesztő oldalon).
  2. A custom_callback név helyére írd a saját visszahívásod nevét.
  3. A guests-number helyére a mező kulcsát írd, amelyet további számtani értékként használni akarsz. A példában az eredmény a vendégek számától függ: ha 5 és 10 közötti vendég van, más a képlet, mint 10 vagy több vendégnél. Tetszőleges feltételt átírhatsz.
  4. Kattints a Fájl frissítése gombra.

A példában ez a képletrész dolgozik 5 és 10 vendég között:

elseif ( 5 <= $additional_field_value && $additional_field_value < 10 ) {
$result = $field_value * $additional_field_value - $field_value * $additional_field_value * 0.1;

Ezután a sablonban a A mező kimenetének szűrése bekapcsolása mellett a Calculated field visszahívásnál a Calculated callbacks listában megjelenik az új visszahívás. Válaszd ki.

Az A mező kimenetének testreszabása beállításnál a %s jel elé vagy mögé szöveget írhatsz (például pénznemet).

Mentsd a sablont, és helyezd el az oldalon a Listing Grid widgetet a létrehozott listázással. A frontenden az ár a vendégek száma, a megadott ár és a kódba illesztett képlet alapján számolva jelenik meg.

Példa: életkor vagy tapasztalat években

Szekció neve “Példa: életkor vagy tapasztalat években”

A kiegészítővel két év különbségét is kiszámíthatod, így egy felhasználó életkorát vagy szolgálati idejét űrlap és külön mező nélkül, egy Dátum mező értékéből jelenítheted meg. Szükséges: a Profilkészítő modul bekapcsolva és a Calculated Callback kiegészítő aktiválva.

  1. Metabox felhasználóknak: a JetEngine → Metaboxok oldalon kattints az Új hozzáadása gombra. Add meg a címet („Felhasználói mezők”), a Metabox ehhez legyen Felhasználó, a Láthatósági feltételek részben a Látható itt értéke legyen Felhasználó és profil szerkesztése.
  2. A Metamezők részben vegyél fel egy Dátum típusú mezőt (például „Munkaviszony kezdete”), és kapcsold be az Mentés időbélyegként kapcsolót. Mentsd a metaboxot.
  3. A Felhasználók → Összes felhasználó oldalon szerkeszd a felhasználót, töltsd ki a dátumot, és kattints a Profil frissítése gombra.
  4. A kiegészítő letöltése és aktiválása a fentiek szerint történik.
  5. A Megjelenés → Sablonszerkesztő oldalon illeszd be a kódot az aktív sablon functions.php fájljának végére, majd kattints a Fájl frissítése gombra. A DOB kulcs a visszahívás neve, ezt átírhatod:
add_filter( 'jet-engine-calculated-callback/config', function( $callbacks = array() ) {
$callbacks['DOB'] = function( $field_value ) {
$dob = getdate( $field_value );
$today = getdate();
$year_diff = $today['year'] - $dob['year'];
if ( $today['mon'] > $dob['mon'] || ( $today['mon'] == $dob['mon'] && $today['mday'] >= $dob['mday'] ) ) {
return $year_diff;
}
return $year_diff - 1;
};
return $callbacks;
} );
  1. A JetEngine → Listázások/komponensek oldalon vegyél fel új elemet, a Listázás forrása legyen Felhasználók, add meg a nevet, és a megjelenítési módot válaszd Elementor-ra.
  2. Tegyél be egy Dynamic Field widgetet, kapcsold be a A mező kimenetének szűrése kapcsolót, a visszahívás legyen Calculated field, a Calculated callbacks listában válaszd a DOB visszahívást.
  3. Kapcsold be az A mező kimenetének testreszabása kapcsolót, és a Mező formátuma mezőbe írd be a kívánt szöveget.
  4. Tedd közzé a listázást.

A kód két év különbségét számolja, ezért életkorra és tapasztalatra is használható. Ha azokat a felhasználókat szeretnéd listázni, akiknek ebben a hónapban, a mai naptól kezdve van a születésnapjuk, ahhoz SQL-lekérdezés kell, nem ez a kód.

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