it-swarm.com.de

Wie kann ich anhand der Formulareingabe an mehrere Empfänger von Kontaktformular 7 senden?

Wir führen einen Wettbewerb durch, bei dem wir E-Mails an E-Mail-Adressen senden müssen, die in ein Formular eingegeben wurden. Ich benutze dazu das Kontaktformular 7.

Ich dachte, das wäre einfach, aber das Formular akzeptiert nicht die Syntax von:

[friend1-email], [friend2-email], [friend3-email], [friend4-email], [friend5-email]

Im Feld An oder Bcc.

Ich denke, die Lösung könnte darin bestehen, einfach einen Wert im Feld An fest zu codieren und ihn dann mit einem Haken zu überschreiben, aber ich kann nicht herausfinden, was dieser Filter/Haken sein könnte.

Jede Hilfe dankbar.

2
mikemike

Sie müssen keinen Code schreiben. Das Kontaktformular 7 enthält Funktionen für zusätzliche Header im Abschnitt Mail. Dazu müssen Sie nur den Header der E-Mail in das Textfeld Zusätzliche Header im Abschnitt Mail (Zweite Registerkarte) schreiben.

Fügen Sie dies in das Textfeld Additional Headers ein.

Cc: [friend1-email], [friend2-email], [friend3-email], [friend4-email], [friend5-email]

 enter image description here 

OR

Sie können die E-Mail-Header-Daten ändern, indem Sie den Haken wpcf7_before_send_mail unterhalb des Codes versuchen.

add_action('wpcf7_before_send_mail','dynamic_addcc');

function dynamic_addcc($WPCF7_ContactForm){

    // Check contact form id.
    if (33 == $WPCF7_ContactForm->id()) {

        $currentformInstance  = WPCF7_ContactForm::get_current();
        $contactformsubmition = WPCF7_Submission::get_instance();

        if ($contactformsubmition) {

            $cc_email = array();

            /* -------------- */
            // replace with your email field's names
            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']);
            }
            /* -------------- */

            // saparate all emails by comma.
            $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";
            }

            // Save the email body
            $currentformInstance->set_properties(array(
                "mail" => $mail
            ));

            // return current cf7 instance
            return $currentformInstance;
        }
}
}

wpcf7_before_send_mail hook wird vor dem E-Mail-Versand ausgeführt. Sie können die Formulardaten ändern.

6
Govind Kumar