使用WordPress wp_mail发送具有不同主题和消息的多个邮件

时间:2019-03-14 11:38:39

标签: php wordpress

我正在使用WordPress +联系人表格,该表格使用 wp_mail 功能发送电子邮件。我现在需要的是,它会自动发送两封(或更多封)带有不同主题和消息的电子邮件。

  1. 对我
  2. 对访问者–根据访问者的个人需求
  3. nozbe.com ,它将邮件转换为任务(主题中的标签)
  4. 也许将来会更多

2 个答案:

答案 0 :(得分:1)

您可以捕获来自wordpress的电子邮件,检查要发送的电子邮件是否来自您的联系表单,最后执行您的自定义操作(发送2封电子邮件)。

您可以通过注册过滤器来实现:

add_filter( 'wp_mail', 'my_wp_mail' );
function my_wp_mail($attributes)
{
    //If the subject matches the subject from the contact form do the following:
       //Change the subject (so that this code gets only performed once, and not EVERY time the wp_mail function is called)
       //Send your custom mails by calling the wp_mail function: https://developer.wordpress.org/reference/functions/wp_mail/
       //You can access the attributes by calling $attributes['subject'], $attributes['message'], $attributes['to'], ...
    return $attributes;
}

因此,您在示例中唯一需要编辑的就是一旦执行了自定义操作(因此不会无限次执行)就删除键_wpnonce-et-pb-contact-form-submitted-0

答案 1 :(得分:0)

解决方案

function my_wp_mail_func( $args ) {

    // checks data origin (in this case contact module of Divi theme)
    if ( array_key_exists('et_pb_contactform_submit_0', $_POST) ){

        // prevents infinite loop
        unset($_POST["et_pb_contactform_submit_0"]);

        $message = $args['message'] . ' 2';
        $subject = $args["subject"] . ' 2';
        $to = "recipient2@domain.com";

        wp_mail( $to, $subject, $message, $args['headers'], $args['attachments'] );

        $message = $args['message'] . ' 3';
        $subject = $args["subject"] . ' 3';
        $to = "recipient3@domain.com";

        wp_mail( $to, $subject, $message, $args['headers'], $args['attachments'] );

        return $args;
    }

    return $args;

}

add_filter( 'wp_mail', 'my_wp_mail_func' );