Меняем данные письма перед отправкой

Предположим, что мы хотим перед отправкой формы динамически изменить некоторые данные отправляемого письма. Например, получателя, отправителя или тему письма. 

Код ниже покажет, как изменить 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.