Come inviare email con dati di un form personalizzato usando WordPress

25 ott 2017, 20:15:30
Visualizzazioni: 28.8K
Voti: 4

Ho un form HTML personalizzato con campi input e checkbox. Quando invio questo form voglio inviare una email con tutti i dettagli del form dallo stesso file php. Come posso inviare l'email da WordPress? Sono abbastanza nuovo e vi ringrazio per il vostro aiuto.

0
Tutte le risposte alla domanda 3
4

wp_mail è la funzione che stai cercando.

Puoi prendere i dati del form inviati (ad esempio $_POST['email']) e poi usarli per costruire ed eseguire la funzione wp_mail. L'esempio qui sotto è stato preso da https://developer.wordpress.org/reference/functions/wp_mail/#user-contributed-notes

$to = $_POST['email']; //sendto@example.com
$subject = 'Oggetto della mail';
$body = 'Contenuto del corpo della mail'; 
$headers = array('Content-Type: text/html; charset=UTF-8');

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

Inoltre lo script sopra dovrebbe controllare eventuali attacchi malevoli o input errati da parte dell'utente, ma la funzione wp_mail ti permetterà di inviare l'email.

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

25 ott 2017 20:24:28
Commenti

devo aggiungerlo allo stesso file php del mio modulo?

Sourav Sourav
25 ott 2017 20:33:55

Dipende da come gestisci i tuoi moduli. Se hai lo stesso PHP in esecuzione nella pagina del template come il tuo modulo, allora puoi (anche se non lo consiglierei). Ti consiglio di dare un'occhiata a questi due link per avere un'idea su come gestire i moduli in PHP (https://www.w3schools.com/php/php_forms.asp e https://www.w3schools.com/php/php_form_complete.asp). Puoi anche usare un plugin come Contact Form 7 (https://wordpress.org/plugins/contact-form-7/) se non vuoi scrivere il PHP e lavorare direttamente nel WP-Admin.

Tom Tom
25 ott 2017 20:36:58

Grazie, posso scrivere il corpo come HTML personalizzato in modo che la mia email possa avere un aspetto unico?

Sourav Sourav
25 ott 2017 21:52:58

@Sourav Sì, dovresti inserirlo nel $body.

Tom Tom
25 ott 2017 22:48:44
2

Se non vuoi scrivere il tuo codice (e il modulo di contatto), considera un plugin per i 'moduli di contatto'. Io uso (e raccomando) il plugin Contact Form 7. Ti permette di creare qualsiasi modulo, personalizzarne l'aspetto/la sensazione/i campi e l'email che viene inviata. Plugin molto potente e popolare. Sono disponibili molti altri plugin per aggiungere campi aggiuntivi.

L'unico problema minore è una documentazione tecnica scarsa e a volte difficile da trovare (e a volte datata) (come i filtri disponibili). Ma ho trovato delle soluzioni alternative.

26 ott 2017 05:05:53
Commenti

ho un modulo personalizzato, posso usare il plugin del modulo di contatto per inviare le email?

Sourav Sourav
26 ott 2017 09:29:35

Dovrai costruire il modulo tramite l'interfaccia del plugin. Anche se potrebbe essere possibile utilizzare il processo di "invio" di CF7, dovresti impostare molte variabili di CF7 per farlo funzionare bene, e queste variabili non sono ben documentate; dovresti esaminare il loro codice. Penso sia più semplice usare il generatore di moduli di CF7.

Rick Hellewell Rick Hellewell
26 ott 2017 20:55:36
0

Un modo semplice per inviare un modulo è utilizzare un servizio backend per form come https://www.formkeep.com

Tutto quello che devi fare è modificare il tag action nel tuo modulo e il servizio backend memorizzerà i dati e fornirà modi per integrarli con altri sistemi.

Ecco un esempio di come modificare l'html del form. Dovrai semplicemente sostituire "example token" con una chiave fornita dal servizio formkeep

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