Tovább a tartalomhoz

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:

  1. 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.
  2. A bejelentkezett felhasználó saját adatai kerülnek a PDF-be.
  • 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 és customer_meta. A felhasználói profilokat a JetEngine User Profile Builderével lehet kialakítani.

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”
  1. 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”).
  2. Szúrj be egy Select Fieldet.
  3. A blokk beállításai között a FIELD LABEL legyen „customer” (a FORM FIELD LABEL magától kitöltődik).
  4. 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.
  5. A Post Submit Actions részben add hozzá a Save Form Record műveletet, majd a New Action gombbal a Generate PDF műveletet.
  6. Az Edit Generate PDF ablakban, ha még nincs sablon, kattints az Add new template gombra.
  7. 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 a customer_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.
  8. 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.
  9. Kapcsold be a Save generated PDF kapcsolót. A hibaüzeneteket átírhatod vagy meghagyhatod, majd kattints az Update gombra.
  10. 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.

  1. 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.
  2. A weboldalon válaszd ki a kívánt felhasználót, és küldd be az űrlapot.
  3. 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”
  1. 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.
  2. A két rejtett mező neve legyen customer_phone, illetve customer_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).
  3. 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.
  4. Az Update gombbal zárd be az ablakot.
  1. Nyisd meg a JetFormBuilder → Endpoints oldalt, és kattints az Add new route gombra.
  2. A JetFormBuilder Actions Endpoint ablak Settings részében a RELATED FORM mezőben válaszd ki az előbbi űrlapot.
  3. 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.
  4. 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.
  5. Kattints az Update gombra.

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.

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.

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:

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