Come posso inviare a più destinatari in Contact Form 7 in base all'input del modulo?
Stiamo gestendo un concorso dove dobbiamo inviare email agli indirizzi email che vengono inseriti in un modulo. Sto utilizzando Contact Form 7 per farlo.
Pensavo fosse semplice ma il modulo non accetta la sintassi di:
[friend1-email], [friend2-email], [friend3-email], [friend4-email], [friend5-email]
Nel campo A o Ccn.
Penso che la soluzione potrebbe essere quella di inserire un valore fisso nel campo A e poi sovrascriverlo con un hook, ma non riesco a capire quale filtro/hook potrebbe essere.
Qualsiasi aiuto è apprezzato.
Non è necessario scrivere alcun codice, Contact Form 7 ha la funzionalità di Intestazioni Aggiuntive nella sezione Mail. In quella sezione, devi solo scrivere l'intestazione dell'email all'interno della casella di testo Intestazioni aggiuntive nella sezione Mail (seconda scheda).
Inserisci questo nella casella di testo Intestazioni aggiuntive.
Cc: [friend1-email], [friend2-email], [friend3-email], [friend4-email], [friend5-email]

OPPURE
Puoi modificare i dati dell'intestazione dell'email utilizzando gli hook wpcf7_before_send_mail, prova il codice qui sotto.
add_action('wpcf7_before_send_mail','dynamic_addcc');
function dynamic_addcc($WPCF7_ContactForm){
// Controlla l'ID del form di contatto.
if (33 == $WPCF7_ContactForm->id()) {
$currentformInstance = WPCF7_ContactForm::get_current();
$contactformsubmition = WPCF7_Submission::get_instance();
if ($contactformsubmition) {
$cc_email = array();
/* -------------- */
// sostituisci con i nomi dei tuoi campi email
if(is_email($_POST['friend1-email'])){
array_push($cc_email, $_POST['friend1-email']);
}
if(is_email($_POST['friend2-email'])){
array_push($cc_email, $_POST['friend2-email']);
}
/* -------------- */
// separa tutte le email con una virgola.
$cclist = implode(', ',$cc_email);
$data = $contactformsubmition->get_posted_data();
if (empty($data))
return;
$mail = $currentformInstance->prop('mail');
if(!empty($cclist)){
$mail['additional_headers'] = "Cc: $cclist";
}
// Salva il corpo dell'email
$currentformInstance->set_properties(array(
"mail" => $mail
));
// restituisce l'istanza corrente di CF7
return $currentformInstance;
}
}
}
L'hook wpcf7_before_send_mail viene eseguito prima dell'invio dell'email, puoi modificare i dati del form.
tutte le email all'interno di Cc: devono essere presenti altrimenti genererà un errore,
GKS
@mikemike ho aggiornato la mia risposta, sostituisci con l'ID del tuo modulo di contatto e il nome dei campi.
GKS