Skip to content

feat: add UTM parameters support#3

Merged
progreccor merged 1 commit into
RadicalMart:rf4from
cave2006:feature/add-utm
May 28, 2026
Merged

feat: add UTM parameters support#3
progreccor merged 1 commit into
RadicalMart:rf4from
cave2006:feature/add-utm

Conversation

@cave2006
Copy link
Copy Markdown
Contributor

Изменённые файлы

1. radicalform.xml

  • Добавлено поле track_utm (radio, on/off, default=off) в базовый <fieldset> после поля insertip.

2. src/Extension/RadicalForm.php

Три изменения:

  • onAfterInitialise() — при каждом запросе к сайту собирает UTM-метки из URL (utm_source, utm_medium, utm_campaign, utm_term, utm_content) и сохраняет в сессию Joomla.
  • onAfterRender() — флаг TrackUtm передаётся в JS-объект RadicalForm.
  • onAjaxRadicalform() — при отправке формы восстанавливает UTM-метки из сессии в данные формы (если они не были явно переданы). Выполняется до антиспам-фильтра и отправки email.

3. Языковые файлы

  • language/en-GB/plg_system_radicalform.ini
  • language/ru-RU/plg_system_radicalform.ini

Добавлены строки:

  • PLG_RADICALFORM_TRACK_UTM_LABEL
  • PLG_RADICALFORM_TRACK_UTM_DESC

Как это работает

  1. Посетитель переходит по ссылке с параметрами: ?utm_source=google&utm_medium=cpc...
  2. Плагин перехватывает параметры в методе onAfterInitialise() и сохраняет их в сессию Joomla.
  3. UTM-метки сохраняются при навигации между страницами сайта.
  4. При отправке формы метки из сессии автоматически подставляются в данные формы.
  5. Поля UTM отображаются в:
    • письме администратору
    • логе отправки
    • истории записей
    • CSV-экспорте
  6. Если в HTML-форме уже присутствуют скрытые поля с именами utm_* — их значения имеют приоритет над сессией.

Примечание: Всё работает без записей в БД — только через сессию Joomla.

@progreccor progreccor merged commit a2f564c into RadicalMart:rf4 May 28, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants