CF7需要发送两个不同的邮件

时间:2017-02-23 10:57:30

标签: wordpress email

我创建了一个联系表单7的表单,我需要发送两封电子邮件,一封包含我从表单中提取的所有数据,另一封包含“谢谢”消息和其他重要信息,这些信息是静态的,对于点击提交按钮的每个用户都是相同的。

所以我的问题是这封电子邮件,CF7只能向多个用户发送一种类型的邮件,而不是两个不同的邮件发送给两个不同的用户。第二封邮件需要使用[你的邮件](用户在表单中写的邮件)。

我发现了on_sent_ok函数,它允许我在提交后打开一个页面或其他东西,但我不知道如何发送这个不同的邮件。

1 个答案:

答案 0 :(得分:0)

您的请求已经有一段时间了,但我在这里写下我的解决方案以满足未来的需求。

您可以通过以下两个步骤达到目标:

A)处理已发送邮件的联系表格7事件。

    function your_wpcf7_mail_sent_function( $contact_form ) {
        $title = $contact_form->title;
        $submission = WPCF7_Submission::get_instance();
        if ($submission && "New hospital" == $title) {
            $posted_data = $submission->get_posted_data();
            //$posted_data is an associative array that contains all the form input values,
            //so you can use it to proceed with B step
       }
    }

add_action( 'wpcf7_mail_sent', 'wpcf7_mail_sent_event_triggered' );

如果您不确定此代码的位置我的建议是在主题的function.php文件的开头添加它。

B)使用wp_mail API发送自定义邮件。 如果您查看文档,您会发现API很容易理解。

$to = 'sendto@example.com';
$subject = 'The subject';
$body = 'The email body content';
$headers = array('Content-Type: text/html; charset=UTF-8');

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

显然,您可以根据需要使用或不使用$posted_data值来自定义正文消息。