Felhasználói adatok a PDF-ben
Felhasználói meta mezők (például telefonszám) átadása a generált PDF-nek: kiválasztott felhasználóval és a bejelentkezett felhasználóval.
Ez a fejezet két esetet mutat be, amikor a PDF-be a felhasználók mentett adatai kerülnek:
- Bárki (a nem bejelentkezett látogató is) kiválaszt egy felhasználót a listából, és a PDF a kiválasztott felhasználó adatait tartalmazza.
- A bejelentkezett felhasználó saját adatai kerülnek a PDF-be.
Előfeltételek
Szekció neve “Előfeltételek”- Aktív JetEngine és JetFormBuilder, valamint a PDF Attachment bővítmény.
- A második esethez a Formless Actions Endpoints bővítmény is kell, aktívan.
- A felhasználókhoz meta mezők (meta box) tartoznak, kitöltött értékekkel. A példában egy meta boxban két Text meta mező van:
customer_phoneéscustomer_meta. A felhasználói profilokat a JetEngine User Profile Builderével lehet kialakítani.
Kódrészlet hozzáadása
Szekció neve “Kódrészlet hozzáadása”Illeszd be az alábbi kódot a sablon functions.php fájljába, vagy egy kódrészlet-kezelő bővítménybe (például WPCode Lite, Code Snippets), majd mentsd.
add_action( 'jet-form-builder/before-do-action/generate_pdf', function () {
$user_id = get_current_user_id();
if ( ! $user_id ) { return; }
jet_fb_context()->update_request( get_user_meta( $user_id, 'customer_phone', true ), 'customer_phone' );
jet_fb_context()->update_request( get_user_meta( $user_id, 'customer_meta', true ), 'customer_meta' );
} );A kód a Generate PDF művelet lefutása előtt a bejelentkezett felhasználó meta mezőit beteszi az űrlap adatai közé, így a sablonban makróval használhatók. A customer_phone és a customer_meta helyére a saját meta mezőid nevét írd. Ha több adatot szeretnél, vegyél fel még egy update_request blokkot a megfelelő meta mezővel.
1. eset: kiválasztott felhasználó adatai a PDF-ben
Szekció neve “1. eset: kiválasztott felhasználó adatai a PDF-ben”Az űrlap
Szekció neve “Az űrlap”- Nyisd meg a JetFormBuilder → Add New Form oldalt, töröld az üdvözlő blokkot, és adj nevet az űrlapnak (a példában „users”).
- Szúrj be egy Select Fieldet.
- A blokk beállításai között a FIELD LABEL legyen „customer” (a FORM FIELD LABEL magától kitöltődik).
- A FILL OPTIONS FROM listából válaszd a Generate Dynamically értéket, a GENERATOR FUNCTION listából pedig a Get values list from WordPress Users értéket. Így a lista a webhely felhasználóiból áll.
- A Post Submit Actions részben add hozzá a Save Form Record műveletet, majd a New Action gombbal a Generate PDF műveletet.
- Az Edit Generate PDF ablakban, ha még nincs sablon, kattints az Add new template gombra.
- A sablonszerkesztőben add meg a sablon nevét, és a [/] (Insert JetFormBuilder macros) gombbal illeszd be ugyanazokat a mezőket, amelyek a meta boxban vannak (a példában a
customer_phoneés acustomer_metaértékét). Kattints a Mentés gombra, zárd be a szerkesztőt, és térj vissza az űrlaphoz. A sablon neve megjelenik a SELECT PDF TEMPLATE mezőben. - A FILE NAME mezőt töltsd ki, vagy a csavarkulccsal válassz mezőt. A példa a %_template_name% makrót használja.
- Kapcsold be a Save generated PDF kapcsolót. A hibaüzeneteket átírhatod vagy meghagyhatod, majd kattints az Update gombra.
- Szúrj be egy Action Buttont az űrlapba, és közzétedd az űrlapot.
Itt csak a Save Form Record és a Generate PDF műveletet használtuk. Ha szeretnéd, a Send Email művelettel elküldheted a PDF-et, vagy a Redirect to Page művelettel átirányíthatsz egy másik oldalra.
Oldal és kipróbálás
Szekció neve “Oldal és kipróbálás”- Hozz létre egy oldalt, tedd rá a JetForm widgetet (blokkot, elemet), a Choose Form listában válaszd ki az űrlapot, és mentsd az oldalt.
- A weboldalon válaszd ki a kívánt felhasználót, és küldd be az űrlapot.
- A JetFormBuilder → Form Records oldalon nyisd meg a beküldés rekordját. A jobb alsó sarokban a Generated PDF résznél a View hivatkozással megnyithatod a PDF-et, az Edit hivatkozással szerkesztheted. A Label & Name alatti útvonalat a böngészőbe másolva is megnézheted.
2. eset: a bejelentkezett felhasználó adatai a PDF-ben
Szekció neve “2. eset: a bejelentkezett felhasználó adatai a PDF-ben”Az űrlap
Szekció neve “Az űrlap”- Hozz létre új űrlapot (a példában „generate pdf”), töröld az üdvözlő blokkot, és szúrj be két Hidden Fieldet és egy Action Buttont.
- A két rejtett mező neve legyen
customer_phone, illetvecustomer_meta. Mindkettőnél a FIELD VALUE legyen Manual Input, a VALUE mezőbe pedig a meta mező neve kerüljön (customer_phone,customer_meta). - A Post Submit Actions részben add hozzá a Save Form Record, majd a Generate PDF műveletet. Válaszd ki ugyanazt a sablont, és szükség szerint módosítsd.
- Az Update gombbal zárd be az ablakot.
Végpont
Szekció neve “Végpont”- Nyisd meg a JetFormBuilder → Endpoints oldalt, és kattints az Add new route gombra.
- A JetFormBuilder Actions Endpoint ablak Settings részében a RELATED FORM mezőben válaszd ki az előbbi űrlapot.
- Az ACTION TYPE értéke legyen WordPress AJAX. Ekkor megjelenik az AJAX ACTION SLUG mező: írd be például, hogy
generate-current-user-pdf. - A Data Fields résznél kattints a Sample request fülre, majd a Copy data for the request gombbal másold ki a mintakérést: az oldalon használt gomb kéréséhez kell.
- Kattints az Update gombra.
Oldal
Szekció neve “Oldal”Nyiss meg egy oldalt a kedvenc szerkesztődben, alakítsd ki, és tegyél rá egy gombot (a példában az Elementor Button widgetje), amely a másolt mintakérést küldi.
Kipróbálás
Szekció neve “Kipróbálás”A menet ugyanaz, mint az első esetben. Jelentkezz be, kattints a gombra: ha a beküldés sikerült, a „Form successfully submitted.” szöveg jelenik meg. A JetFormBuilder → Form Records oldalon a beküldés rekordjában megtalálod a PDF-et.
Gyakori kérdések
Szekció neve “Gyakori kérdések”Generálhat PDF-et bejelentkezés nélkül is a látogató? Igen. Az első megoldásban bárki, a kijelentkezett látogató is kiválaszthat egy felhasználót a listából, és a PDF a felhasználó meta adatait tartalmazza.
Hozzáadhatok több felhasználói meta mezőt a PDF-hez? Igen. Vedd fel a meta mezők nevét és értékét a kódrészletbe, és illeszd be a megfelelő makrókat a PDF-sablonba.
Mire valók a rejtett mezők a bejelentkezett felhasználós megoldásban? Megjelenített beviteli mezők nélkül viszik át az űrlapon a szükséges meta mezők nevét. Az értékük így elérhető a PDF készítésekor.
Mire való a Formless Actions Endpoint? Lehetővé teszi, hogy a PDF-et készítő művelet WordPress AJAX-kéréssel induljon el. Így a bejelentkezett felhasználó adataival készíthető PDF látható űrlapmezők nélkül.
Készült: