Tovább a tartalomhoz

Ű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.

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:

  1. Vegyél fel két Jelszó mezőt „Jelszó” és „Jelszó megerősítése” címkével.
  2. Másold ki a főmező azonosítóját a beállításai végéről.
  3. A megerősítő mezőn kapcsold be a Megerősítő jelszóként jelölés lehetőséget.
  4. 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.
  5. 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.
  6. 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.

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}}).

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.

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.

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" }
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
  1. A Zapierben hozz létre egy új Zapet.
  2. Eseményindítónak válaszd a „Webhooks by Zapier” szolgáltatást.
  3. Válaszd a „Catch Hook” lehetőséget.
  4. Másold ki a Zapier által adott webhook-URL-t.
  5. A Bricksben az űrlapon vegyél fel egy Webhook műveletet.
  6. Illeszd be a Zapier-URL-t a Végpont URL mezőbe.
  7. Az adatformátum legyen JSON (ajánlott).
  8. Opcionálisan add meg a tartalmat, vagy hagyd üresen az összes mező küldéséhez.
  9. 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.

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.

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.
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 );

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();
$to = '[email protected]'; // Cseréld ki
$from = '[email protected]'; // Cseréld ki
$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
]);
}
}

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:

  1. 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;
});
  1. Ú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;
});
  1. 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:

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