Меняем данные письма перед отправкой
Предположим, что мы хотим перед отправкой формы динамически изменить некоторые данные отправляемого письма. Например, получателя, отправителя или тему письма.
Код ниже покажет, как изменить 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.