Cum trimit un email cu date dintr-un formular personalizat în WordPress
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.

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/

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.

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

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.

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

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.

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">
