Дополнительная аналитика форм через FormIt в MODX Revolution
Недавно столкнулся с необходимостью отправлять в MODX дополнительные данные форм через FormIt, а именно первый рефер и страницу захода. Это оказалось достаточно просто. Теперь к делу.
Сначала необходимо создать плагин. Назовем его analytics-event
и добавим код:
if (!isset($_SESSION['firstReferrerPage'])) { $_SESSION['firstReferrerPage'] = $_SERVER['HTTP_REFERER']; } if (!isset($_SESSION['firstLandingPage'])) { $_SESSION['firstLandingPage'] = $_SERVER['REQUEST_URI']; }
Теперь необходимо добавить выполнение этого кода на событие OnHandleRequest
.
Вся необходимая информация будет храниться в сессии. Если хотите, то для этого можно использовать БД или любое другое хранилище данных.
Осталось дело за малым - отправить эти данные в письме. Поэтому создаем сниппет - хук для FormIt (например, analytics
) со следующим содержимым:
$hook->setValue('firstReferrerPage', isset($_SESSION['firstReferrerPage']) ? $_SESSION['firstReferrerPage'] : 'Unknown'); $hook->setValue('firstLandingPage', isset($_SESSION['firstLandingPage']) ? $_SESSION['firstLandingPage'] : 'Unknown'); $hook->setValue('currentReferrerPage', $_SERVER['HTTP_REFERER']); $hook->setValue('currentLandingPage', $_SERVER['REQUEST_URI']); return true;
Все, что мы делаем в этом сниппете - это устанавливаем сохраненные значения и некоторую другую информацию. К этому списку можно добавить IP-адрес пользователя или что либо еще.
Теперь добавим этот хук в вызов FormIt-а.
[[!FormIt? &hooks=`spam,analytics,email` ... ]]
Осталось только добавить [[+firstReferrerPage]]
и остальные чанки в шаблон сообщения.
На этом все!