Отправка нескольких писем с разными темами и сообщениями с помощью WordPress wp_mail - PullRequest
0 голосов
/ 14 марта 2019

Я использую WordPress + контактную форму, которая отправляет электронные письма с функцией wp_mail .Теперь мне нужно, чтобы он автоматически отправлял два (или более) электронных письма с РАЗЛИЧНЫМИ темами и сообщениями.

  1. мне
  2. посетителю - индивидуально адаптированный к его входным данным
  3. до nozbe.com , который преобразует почту в задачи (хэстэги в теме)
  4. и, возможно, в будущем

Ответы [ 2 ]

1 голос
/ 14 марта 2019

Вы можете отследить отправку электронного письма из 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, как только вы выполнили свое пользовательское действие (чтобы они не выполнялись бесконечное количество раз).

0 голосов
/ 15 марта 2019

РЕШЕНИЕ

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' );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...