Contact Form 7: автоматическое добавление скрытых UTM-меток в форму

Почему важно передавать UTM-метки через Contact Form 7

Для маркетологов и аналитиков важно связывать заявки с источниками трафика. UTM-метки, переданные из URL, позволяют понять, с какого рекламного канала или кампании пришел пользователь. Если формы обратной связи не содержат этих данных, аналитика становится неполной.

Contact Form 7 не умеет автоматически сохранять UTM-метки из URL, поэтому нужно реализовать это вручную. В статье разберем, как автоматически подхватывать UTM-метки из URL и добавлять их скрытыми полями в форму Contact Form 7.

Диагностика проблемы: UTM-метки не передаются с формой

Проверьте, что при переходе на страницу с формой в URL есть UTM-метки, например:

https://site.ru/contact?utm_source=google&utm_medium=cpc&utm_campaign=spring_sale

Если при отправке формы эти параметры не передаются в письме или в базе, значит, Contact Form 7 не получает их из URL.

Часто пользователи пытаются добавить скрытые поля вручную, но без динамической подстановки значений из URL это не работает.

Пошаговое решение: добавляем скрытые поля для UTM с автозаполнением

1. Добавьте скрытые поля в форму Contact Form 7

Откройте вашу форму и вставьте в нее следующие поля:

[hidden utm_source default:get]  
[hidden utm_medium default:get]  
[hidden utm_campaign default:get]

Параметр default:get указывает, что значение берется из GET-параметров URL с именем поля.

2. Настройте форму для передачи этих полей в Email

В шаблоне письма используйте теги:

Источник (utm_source): [utm_source]  
Канал (utm_medium): [utm_medium]  
Кампания (utm_campaign): [utm_campaign]

3. Обработка и очистка данных (по желанию)

Если хотите дополнительно очистить данные или обрабатывать их в PHP, добавьте следующий код в functions.php вашей темы:

add_filter('wpcf7_posted_data', function($posted_data) {  
    foreach (['utm_source', 'utm_medium', 'utm_campaign'] as $key) {  
        if (!empty($posted_data[$key])) {  
            $posted_data[$key] = sanitize_text_field($posted_data[$key]);  
        }  
    }  
    return $posted_data;  
});

Проверяем результат после внедрения

  1. Перейдите по URL с UTM-метками, например: https://site.ru/contact?utm_source=facebook&utm_medium=cpc&utm_campaign=summer
  2. Откройте форму Contact Form 7, заполните и отправьте её.
  3. Проверьте письмо с заявкой — в нем должны быть значения UTM из URL.
  4. Если вы сохраняете данные в базе или CRM, убедитесь, что поля передаются корректно.

Частые ошибки и их исправление

  • UTM-параметры не передаются: проверьте правильность написания полей в форме, используйте default:get, а не default:post.
  • Поля не отображаются в письме: убедитесь, что теги полей добавлены в шаблон письма.
  • UTM-параметры теряются при переходе между страницами: используйте сохранение UTM в cookie или session, либо передавайте в URL при навигации.
  • Данные не фильтруются: для безопасности используйте sanitize_text_field или аналогичные функции при обработке.

Практические советы по безопасности и производительности

  • Не доверяйте напрямую GET-параметрам — всегда фильтруйте и валидируйте данные.
  • Минимизируйте количество скрытых полей, передавая только необходимые UTM-метки.
  • Для сохранения UTM при переходах между страницами используйте JS скрипты или серверные решения.
  • Если нужно хранить UTM на длительный срок, лучше сохранять их в сессии или куках с ограничением по времени.

Альтернативные способы реализации: сравнение

Метод Плюсы Минусы
Скрытые поля с default:get Простая реализация, не требует плагинов Работает только при первом заходе на страницу с UTM
Сохранение UTM в cookie через JS + вставка в форму Передача UTM при переходах между страницами Требует добавления JS, сложнее в поддержке
Использование плагинов (например, CF7 Dynamic Text Extension) Больше возможностей для динамического заполнения Зависимость от стороннего плагина

Добавь в закладки и поделись с друзьями:

⭐⭐⭐⭐⭐
Contact Form 7 и автоматизация обработки заявок с помощью PHP и WP хуков
14.03.2026
Contact Form 7: как отключить автозаполнение полей формы
23.05.2026
Contact Form 7: автоматическая обработка и сохранение ответов в WordPress
18.12.2025
Contact Form 7: Автозаполнение полей формы по геолокации пользователя
16.04.2026
Contact Form 7: динамические поля и подгрузка данных из базы WordPress
24.12.2025
×
WordPress
дай сайту суперсилу!

Скидки на топовые темы и плагины

Активировать суперсилу ⋙