Как вставить результат выполнения php скрипта в тег Contact Form 7 или в поле «кому» Contact Form 7?
В Contact Form 7 в настройках формы во вкладке "Письмо" можно указать адрес получателя в поле "Кому".
В разных ситуациях нужно чтобы письмо отправлялось на разные адреса. Подскажите пожалуйста, как в поле "Кому" подставить результат выполнения php скрипта если это вообще возможно? Или тег в котором будет результат выполнения скрипта.
Дополнительно:
Ответы:
В Contact Form 7 в настройках формы во вкладке "Письмо" можно указать адрес получателя в поле "Кому".
В разных ситуациях нужно чтобы письмо отправлялось на разные адреса
Для выбора кому отправить в CF7 есть родной функционал
Вот как я делал для клиента
- Поле в форме
<p class="half"></p> Тема сообщения [select* feedback "Консультация по ассортименту|manager@myim.com" "О работе магазина|sales@myim.com" "Проблема на сайте|webmaster@myim.com, admin@myim.com"] |
<p class="half"></p> Тема сообщения [select* feedback "Консультация по ассортименту|manager@myim.com" "О работе магазина|sales@myim.com" "Проблема на сайте|webmaster@myim.com, admin@myim.com"]
-В поле "Кому"
[feedback]
Правда, CF7 ругается, что типа не корректно заполнено это поле, но работает.
- Возможно я не вполне понятно объяснил. Там для каждого посетителя индивидуальный адрес уникальный должен генерироваться php кодом на основе utm меток, на который будет идти письмо. Т.е. должен php код выполняться или значение переменной подставляться из уже выполненного на странице кода.
- IvanRivan, хм.. тогда похоже надо писать плагина-дополнение к CF7 со своим шорткодом. Но я вижу у тебя на скрине шорткоды utm. Может не нужно ничего генерировать, а использовать эти шорткоды? ну типа [utm_source]@mydomen.ru? Или же нужно брать реальные (а не генерённые) адреса из базы и сопоставлять их с метками?
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос

В Contact Form 7 результат PHP-скрипта напрямую в поле “Кому” вставлять не нужно. Есть два нормальных способа: использовать pipe в select или менять получателя через фильтр CF7 перед отправкой письма.
Если пользователь сам выбирает тему обращения, проще всего использовать pipe:
[select* feedback "Консультация по ассортименту|manager@example.com" "О работе магазина|sales@example.com" "Проблема на сайте|webmaster@example.com"]
А в поле “Кому” указываете:
[feedback]
CF7 может предупреждать о нестандартном email-поле, но pipe — штатный механизм. Главное, чтобы значения были корректными адресами и не приходили произвольно от пользователя.
Если адрес нужно определить PHP-логикой, используйте фильтр
wpcf7_before_send_mail:add_action('wpcf7_before_send_mail', function ($contact_form) { $submission = WPCF7_Submission::get_instance(); if (!$submission) { return; } $data = $submission->get_posted_data(); $mail = $contact_form->prop('mail'); if (($data['city'] ?? '') === 'moscow') { $mail['recipient'] = 'moscow@example.com'; } else { $mail['recipient'] = 'common@example.com'; } $contact_form->set_properties(['mail' => $mail]); });
Не подставляйте email из формы напрямую без белого списка, иначе получите возможность отправки писем на произвольные адреса. Всегда сопоставляйте выбор пользователя с заранее заданным списком получателей.
Вывод: для простого выбора отдела используйте pipe. Для сложной логики — фильтр CF7. В поле “Кому” нельзя безопасно “выполнить PHP”, но можно изменить настройки письма программно до отправки.