Űrlap: műveletek és egyéni fejlesztés
Az Űrlap további műveletei: bejelentkezés, regisztráció, jelszókezelés, átirányítás, webhook, bejegyzés létrehozása, Mailchimp, SendGrid és egyéni műveletek.
Ez a fejezet az Űrlap elem e-mailen kívüli műveleteit és a fejlesztőknek szóló bővítési lehetőségeit írja le.
Felhasználói bejelentkezés, regisztráció, elfelejtett jelszó, jelszó-visszaállítás
Szekció neve “Felhasználói bejelentkezés, regisztráció, elfelejtett jelszó, jelszó-visszaállítás”Ez a négy művelet egyedi hitelesítési űrlapokat tesz lehetővé kódolás nélkül. Kiválasztásukkor az űrlapmezőket hozzá kell rendelned a művelet beállításaihoz:
| Művelet | Szükséges mezők |
|---|---|
| Bejelentkezés | Bejelentkezési név, jelszó, és opcionálisan a „Jegyezz meg” jelölőnégyzet. |
| Regisztráció | E-mail, jelszó, felhasználónév, és opcionálisan a vezeték- és keresztnév. |
| Elfelejtett jelszó | E-mail vagy felhasználónév: erre küldi a visszaállítási utasítást. |
| Jelszó visszaállítása | A jelszó mező. |
A regisztráció során küldött alapértelmezett WordPress-e-maileket a wp_new_user_notification_email (a felhasználónak szóló) és a wp_new_user_notification_email_admin (a rendszergazdának szóló) szűrővel alakíthatod. Az elfelejtett jelszó e-mail szövegét a retrieve_password_message szűrővel módosíthatod.
Jelszó megerősítése
Szekció neve “Jelszó megerősítése”Egy Jelszó mező ellenőrizheti, hogy az értéke megegyezik-e egy másik jelszómezőével ugyanabban az űrlapban. Regisztrációs és jelszó-visszaállító űrlapnál használd:
- Vegyél fel két Jelszó mezőt „Jelszó” és „Jelszó megerősítése” címkével.
- Másold ki a főmező azonosítóját a beállításai végéről.
- A megerősítő mezőn kapcsold be a Megerősítő jelszóként jelölés lehetőséget.
- A Fő jelszómező azonosítója mezőbe illeszd be a főmező azonosítóját, kapcsos zárójel és
form-field-előtag nélkül. - Ha az alapértelmezett „A jelszavak nem egyeznek” üzenetet le szeretnéd cserélni, állítsd be a jelszóeltérés hibaüzenetét.
- A hitelesítési művelet Jelszó beállítását rendeld a főmezőhöz.
Az ellenőrzés beküldéskor történik; eltérés esetén az űrlap műveletei nem futnak le. Ha a Fő jelszómező azonosítója üres, az összehasonlítás kimarad, ezért mindig a megfelelő azonosítót add meg. Az egyezés és a kötelező mező ellenőrzése külön dolog: két üres, nem kötelező mező egyezőnek számít. Ha a látogatónak kötelező jelszót megadnia, mindkét mezőn kapcsold be a Kötelező beállítást.
Átirányítás
Szekció neve “Átirányítás”Az űrlap beküldése után átirányítja a látogatót egy másik oldalra: a webhely oldalára, az admin felületre vagy egyéni URL-re, tetszőleges késleltetéssel. Az átirányítás csak akkor fut le, ha az összes többi művelet sikeres volt. Az egyéni átirányítási URL támogatja az űrlap dinamikus mezőit ({{mezo_azonosito}}).
Jelszóvédelem feloldása
Szekció neve “Jelszóvédelem feloldása”Ez a művelet hozzáférést ad a Bricks jelszóvédelmi funkciójával védett tartalomhoz. A megfelelő mezőt rendelheted a „Jelszó” beállításhoz; ha nem rendelsz mezőt, az űrlap első jelszómezője számít.
Webhook
Szekció neve “Webhook”A webhook művelet a beküldött adatokat egy vagy több külső URL-re küldi. Tipikus felhasználás:
- Érdeklődők küldése CRM-be (például Zoho, HubSpot, Salesforce).
- Zapier vagy Make forgatókönyvek indítása.
- Adatok tárolása Google Táblázatban vagy külső adatbázisban.
- Belső eszközök értesítése egyéni API-n vagy Slack-boton át.
A webhook egy HTTP-kérés, amely a beküldéskor elindul. Te szabályozod, mit küld, milyen formátumban, és hogy a hiba megállítsa-e az űrlapot.
Végpontok
Szekció neve “Végpontok”Több végpontot is felvehetsz, mindegyiknek ezek a beállításai vannak:
| Beállítás | Mit csinál |
|---|---|
| Név | A webhook neve, csak a saját tájékozódásodra. |
| Végpont URL | Az URL, ahová az adatok mennek. |
| Adatformátum | JSON vagy Form data (x-www-form-urlencoded). |
| Adat | Opcionális tartalomsablon dinamikus mezőkkel. Ha üres, minden űrlapmező elküldődik. |
| Fejlécek | Opcionális egyéni fejlécek JSON-ban. |
{ "name": "{{43f295}}", "email": "{{a5c626}}" }{ "Authorization": "Bearer token" }További beállítások
Szekció neve “További beállítások”| Beállítás | Mit csinál | Alapérték |
|---|---|---|
| Legnagyobb adatméret (KB) | A kérés tartalmának maximális mérete. | 1024 (1 MB) |
| Sebességkorlátozás | Óránkénti kérések korlátozása. | Ki |
| Legtöbb kérés óránként | A korlát, ha a sebességkorlátozás be van kapcsolva. | 60 |
| Folytatás hiba esetén | Bekapcsolva az űrlap beküldése akkor is sikeres, ha a webhook hibázik. | Ki |
| Hibaüzenet | A webhook hibájakor megjelenő üzenet, ha a folytatás hiba esetén ki van kapcsolva. | Üres |
Példa: Zapier
Szekció neve “Példa: Zapier”- A Zapierben hozz létre egy új Zapet.
- Eseményindítónak válaszd a „Webhooks by Zapier” szolgáltatást.
- Válaszd a „Catch Hook” lehetőséget.
- Másold ki a Zapier által adott webhook-URL-t.
- A Bricksben az űrlapon vegyél fel egy Webhook műveletet.
- Illeszd be a Zapier-URL-t a Végpont URL mezőbe.
- Az adatformátum legyen
JSON(ajánlott). - Opcionálisan add meg a tartalmat, vagy hagyd üresen az összes mező küldéséhez.
- Mentsd el és próbáld ki az űrlapot.
Bejegyzés létrehozása és frissítése
Szekció neve “Bejegyzés létrehozása és frissítése”A „Bejegyzés létrehozása” és „Bejegyzés frissítése” műveletekkel a frontenden is lehet bejegyzéseket létrehozó és szerkesztő űrlapot építeni.
Mailchimp és SendGrid
Szekció neve “Mailchimp és SendGrid”Az űrlap e-mail-címet adhat hozzá a Mailchimp vagy a SendGrid listáidhoz. Először add meg az API-kulcsot a Bricks → Beállítások → API-kulcsok résznél (Mailchimp API-kulcs, illetve SendGrid API-kulcs), majd az űrlapon válaszd a megfelelő műveletet. Ekkor új „Mailchimp”, illetve „SendGrid” beállítócsoport jelenik meg, ahol kiválasztod a listát és az űrlap azon e-mail mezőjét, amelyben a cím van.
| Művelet | Mit küld | Előfeltétel |
|---|---|---|
| Mailchimp | E-mail-cím, keresztnév és vezetéknév egy Mailchimp-listához és csoporthoz. | Mailchimp-fiók és API-kulcs. |
| SendGrid | E-mail-cím, keresztnév és vezetéknév egy SendGrid-listához. | SendGrid-fiók és API-kulcs. |
Egyéni művelet
Szekció neve “Egyéni művelet”Az Egyéni művelet lehetővé teszi, hogy a bricks/form/custom_action akcióba kapcsolódva saját kódot futtass. Győződj meg róla, hogy az Egyéni szerepel az űrlap „Műveletek” választójában.
A visszahívott függvény megkapja az $form objektumot, amellyel lekérheted:
| Metódus | Mit ad vissza |
|---|---|
$form->get_settings() |
Az űrlap beállításait (mezők és műveletek beállításai) asszociatív tömbben. |
$form->get_fields() |
A beküldött mezőértékeket, valamint a postId és a formId értékét. |
$form->get_uploaded_files() |
A feltöltött fájlok adatait (file, url, type) a mező azonosítója szerint csoportosítva. |
1. példa: alapfelépítés
Szekció neve “1. példa: alapfelépítés”function my_form_custom_action( $form ) { // $fields = $form->get_fields(); // $settings = $form->get_settings(); // $files = $form->get_uploaded_files();
// Itt végezd a saját logikádat...
// Hiba esetén állítsd be az eredményt $form->set_result([ 'action' => 'my_custom_action', 'type' => 'success', // vagy 'error' vagy 'info' 'message' => esc_html__( 'Az egyéni művelet nem sikerült', 'bricks' ), ]);}add_action( 'bricks/form/custom_action', 'my_form_custom_action', 10, 1 );2. példa: második e-mail küldése
Szekció neve “2. példa: második e-mail küldése”A beépített e-mail művelet egy értesítést küld. Ezzel a kóddal egy másodikat is elküldhetsz:
function my_form_custom_action_sending_email( $form ) { $fields = $form->get_fields(); $settings = $form->get_settings();
$subject = 'Az e-mail tárgya'; // Cseréld ki
if ( ! empty( $settings['emailContent'] ) ) { $message = $form->render_data( $settings['emailContent'] ); $message = isset( $settings['htmlEmail'] ) ? nl2br( $message ) : $message; } else { $email = new Bricks\Integrations\Form\Actions\Email( 'email' ); $message = $email->get_default_message( $settings, $fields ); }
$headers[] = 'From: Név <' . $from . '>'; $headers[] = 'Reply-to: ' . $from; if ( isset( $settings['htmlEmail'] ) ) { $headers[] = 'Content-Type: text/html; charset=UTF-8' . "\r\n"; }
wp_mail( $to, $subject, $message, $headers );}add_action( 'bricks/form/custom_action', 'my_form_custom_action_sending_email', 10, 1 );3. példa: átirányítás egy rejtett mező URL-jére
Szekció neve “3. példa: átirányítás egy rejtett mező URL-jére”Ha az átirányítás egy URL-paraméter értékétől függ, az Egyéni átirányítási URL mezőben nem használhatod az {url_parameter:kulcs} címkét, mert az űrlap AJAX-szal megy be, és az aktuális oldal URL-paramétere nem kerül a kérésbe.
- 1. módszer: az Átirányítás művelet támogatja az űrlap dinamikus mezőit, ezért a rejtett mező azonosítóját közvetlenül beírhatod az átirányítási URL-be.
- 2. módszer: bonyolultabb logikához használd az Egyéni műveletet. Tedd az URL-paramétert egy Rejtett mezőbe (az alapértéke
{url_parameter:my_key}), majd:
add_action( 'bricks/form/custom_action', 'redirect_to_my_key', 10, 1 );
function redirect_to_my_key( $form ) { $form_fields = $form->get_fields(); $form_id = $form_fields['formId'];
// Csak a kívánt űrlapra fusson if ( $form_id !== 'cyrozb' ) return;
// A rejtett mező azonosítója: oecdxz $my_key = isset( $form_fields['form-field-oecdxz'] ) ? $form_fields['form-field-oecdxz'] : '';
if ( $my_key ) { $redirect_to = get_site_url() . '/?key=' . $my_key;
$form->set_result([ 'action' => 'my_custom_redirect', 'type' => 'redirect', // kötelezően 'redirect' 'redirectTo' => $redirect_to, 'redirectTimeout' => 0 // késleltetés ezredmásodpercben ]); }}Egyéni űrlapműveletek
Szekció neve “Egyéni űrlapműveletek”Több egyéni űrlapművelet is hozzáadható, így a űrlap külső szolgáltatásokhoz (CRM, e-mail-marketing, értesítési rendszerek) vagy saját munkafolyamatokhoz kapcsolható. Három szűrő kell hozzá:
| Szűrő | Szerepe |
|---|---|
bricks/elements/{elem_neve}/controls |
Új műveletek és beállításaik hozzáadása az űrlapszerkesztőhöz. |
bricks/elements/{elem_neve}/control_groups |
A beállítások csoportosítása. |
bricks/form/action/{muvelet} |
A művelet logikája a beküldéskor. |
Példa egy egyéni Slack-értesítésre:
- A művelet felvétele a műveletek választóba:
add_filter( 'bricks/elements/form/controls', function( $controls ) { $controls['actions']['options']['slack-notification'] = esc_html__( 'Küldés Slackre', 'bricks' );
$controls['slackFields'] = [ 'group' => 'slack', 'label' => esc_html__( 'Belefoglalandó mezők', 'bricks' ), 'type' => 'select', 'multiple' => true, 'options' => [], // automatikusan az űrlap 'map_fields' => true mezőivel töltődik 'map_fields' => true, 'description' => esc_html__( 'Válaszd ki, mely mezők kerüljenek a Slack-értesítésbe', 'bricks' ), ];
return $controls;});- Új beállítócsoport:
add_filter( 'bricks/elements/form/control_groups', function( $control_groups ) { $control_groups['slack'] = [ 'title' => esc_html__( 'Slack-értesítés', 'bricks' ), 'required' => [ 'actions', '=', 'slack-notification' ], ];
return $control_groups;});- A művelet logikája beküldéskor:
add_action( 'bricks/form/action/slack-notification', function ( $form ) { $settings = $form->get_settings(); $fields = $form->get_fields();
// Itt jön a Slack-értesítés saját megvalósítása});Készült: