Cum trimit un email cu date dintr-un formular personalizat în WordPress

25 oct. 2017, 20:15:30
Vizualizări: 28.8K
Voturi: 4

Am un formular HTML personalizat cu câmpuri input și checkbox-uri. Când trimit acest formular vreau să transmit un email cu toate detaliile din formular folosind același fișier PHP. Cum pot trimite email-ul din WordPress? Sunt începător și aș aprecia ajutorul vostru.

0
Toate răspunsurile la întrebare 3
4

wp_mail este funcția pe care o cauți.

Poți folosi datele trimise prin formular (de exemplu $_POST['email']) pentru a construi și executa funcția wp_mail. Exemplul de mai jos este preluat de pe https://developer.wordpress.org/reference/functions/wp_mail/#user-contributed-notes

$to = $_POST['email']; //sendto@example.com
$subject = 'Subiectul email-ului';
$body = 'Conținutul corpului email-ului';
$headers = array('Content-Type: text/html; charset=UTF-8');

wp_mail( $to, $subject, $body, $headers );

De asemenea, scriptul de mai sus ar trebui să includă verificări pentru atacuri malitioase sau date invalide introduse de utilizator, dar funcția wp_mail îți va permite să trimiți email-uri.

Sursa: https://developer.wordpress.org/reference/functions/wp_mail/

25 oct. 2017 20:24:28
Comentarii

o adaug în același fișier php ca și formularul meu?

Sourav Sourav
25 oct. 2017 20:33:55

Depinde de modul în care gestionați formularele. Dacă aveți același PHP care rulează pe pagina șablon ca și formularul dvs., atunci puteți (deși nu aș recomanda acest lucru). Aș verifica aceste două linkuri pentru a vă face o idee despre cum să gestionați formularele în PHP (https://www.w3schools.com/php/php_forms.asp și https://www.w3schools.com/php/php_form_complete.asp). De asemenea, puteți utiliza un plugin precum Contact Form 7 (https://wordpress.org/plugins/contact-form-7/) dacă nu doriți să scrieți PHP și să lucrați doar în WP-Admin.

Tom Tom
25 oct. 2017 20:36:58

Mulțumesc, pot să scriu body-ul ca HTML personalizat, astfel încât e-mailul meu să arate unic?

Sourav Sourav
25 oct. 2017 21:52:58

@Sourav Da, trebuie să inserezi asta în $body.

Tom Tom
25 oct. 2017 22:48:44
2

Dacă nu doriți să scrieți propriul cod (și formularul de e-mail), luați în considerare un plugin pentru 'formular de contact'. Eu folosesc (și recomand) pluginul Contact Form 7. Acesta vă permite să creați orice formular, să personalizați aspectul/designul/câmpurile și e-mailul care este trimis. Un plugin foarte puternic și popular. Sunt disponibile multe alte pluginuri pentru a adăuga câmpuri suplimentare.

Singura problemă minoră este documentația tehnică rară și uneori greu de găsit (și uneori mai veche) (cum ar fi filtrele disponibile). Dar am găsit soluții pentru a ocoli acest lucru.

26 oct. 2017 05:05:53
Comentarii

am o formular personalizat, pot folosi un plugin de contact form pentru a trimite mailurile?

Sourav Sourav
26 oct. 2017 09:29:35

Va trebui să 'construiești' formularul prin interfața plugin-ului. Deși ar putea fi posibil să folosești procesul de 'submit' al CF7, ar trebui să setezi multe variabile CF7 pentru a funcționa corect, iar acele variabile nu sunt bine documentate; ar trebui să analizezi codul lor. Cel mai simplu ar fi să folosești constructorul de formulare al CF7, cred.

Rick Hellewell Rick Hellewell
26 oct. 2017 20:55:36
0

O metodă simplă de a posta un formular este să folosești un serviciu de gestionare a formularelor precum https://www.formkeep.com.

Tot ce trebuie să faci este să modifici atributul action din formular, iar serviciul va stoca datele și va oferi modalități de integrare a acestora cu alte sisteme.

Iată un exemplu despre cum să modifici HTML-ul formularului. Va trebui doar să înlocuiești "example token" cu o cheie furnizată de serviciul Formkeep.

<form accept-charset="UTF-8" action="https://formkeep.com/f/exampletoken" method="POST">
24 oct. 2018 21:27:44