Меняем данные письма перед отправкой
Предположим, что мы хотим перед отправкой формы динамически изменить некоторые данные отправляемого письма. Например, получателя, отправителя или тему письма.
Код ниже покажет, как изменить e-mail получателя письма.
Скопировано
add_action( 'wpcf7_before_send_mail', function( $contact_form ) {
$new_recipient = 'test@site.ru';
$mail_prop = $contact_form->get_properties( 'mail' );
$mail_prop['mail']['recipient'] = $new_recipient;
$contact_form->set_properties( [ 'mail' => $mail_prop['mail'] ] );
} );
Показать код
Во второй строке нужно указать верный адрес нового получателя.
Чтобы изменить отправителя письма строку 4 меняем на такую:
Скопировано
$mail_prop['mail']['sender'] = 'Новый отправитель <mail@mail.ru>';
Показать код
А чтобы изменить тему письма строку 4 меняем на такую:
Скопировано
$mail_prop['mail']['subject'] = 'Новая тема письма';
Показать код
Массив $mail_prop, который мы получаем в строке 3, выглядит так:
Array (
[form] => <label> Your name
[text your-name] </label>
<label> Your email
[email your-email] </label>
[submit "Submit"]
[mail] => Array (
[active] => 1
[subject] => [_site_title] "[your-subject]"
[sender] => [_site_title] <wordpress@site.ru>
[recipient] => mail1@site.com
[body] =>
От: [your-name] <[your-email]>
Тема: [your-subject]
Сообщение: [your-message]
--
Это сообщение отправлено с сайта [_site_title] ([_site_url])
[additional_headers] =>
[attachments] =>
[use_html] =>
[exclude_blank] =>
)
[mail_2] => Array (
[active] => 1
[subject] => [_site_title] "[your-subject]"
[sender] => [_site_title] <wordpress@site.ru>
[recipient] => mail2@site.com
[body] =>
Сообщение: [your-message]
--
Это сообщение отправлено с сайта [_site_title] ([_site_url])
[additional_headers] =>
[attachments] =>
[use_html] =>
[exclude_blank] =>
)
[messages] => Array (
[mail_sent_ok] => Спасибо за Ваше сообщение. Оно успешно отправлено.
[mail_sent_ng] => При отправке сообщения произошла ошибка. Пожалуйста, попробуйте ещё раз позже.
[validation_error] => Одно или несколько полей содержат ошибочные данные. Пожалуйста, проверьте их и попробуйте ещё раз.
[spam] => При отправке сообщения произошла ошибка. Пожалуйста, попробуйте ещё раз позже.
[accept_terms] => Вы должны принять условия и положения перед отправкой вашего сообщения.
[invalid_required] => Поле обязательно для заполнения.
[invalid_too_long] => Поле слишком длинное.
[invalid_too_short] => Поле слишком короткое.
[upload_failed] => При загрузке файла произошла неизвестная ошибка.
[upload_file_type_invalid] => Вам не разрешено загружать файлы этого типа.
[upload_file_too_large] => Файл слишком большой.
[upload_failed_php_error] => При загрузке файла произошла ошибка.
[invalid_date] => Формат даты некорректен.
[date_too_early] => Введённая дата слишком далеко в прошлом.
[date_too_late] => Введённая дата слишком далеко в будущем.
[invalid_number] => Формат числа некорректен.
[number_too_small] => Число меньше минимально допустимого.
[number_too_large] => Число больше максимально допустимого.
[quiz_answer_not_correct] => Неверный ответ на проверочный вопрос.
[invalid_email] => Неверно введён электронный адрес.
[invalid_url] => Введён некорректный URL адрес.
[invalid_tel] => Введён некорректный телефонный номер.
[captcha_not_match] => Код введен неверно.
)
[additional_settings] =>
)
Опираясь на него можно поменять перед отправкой любые данные как письма 1, так и письма 2.