Сохраняем UTM в сессию для FormLister

При переходе по ссылкам на сайте utm метки теряются. Возникла вобщем-то не сложная задача: сохранять utm в сессию. Оказалось, что для FormLister уже существует готовое решение, спасибо Pathologic за то, что поделился им.

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



if (!isset($_SESSION['utm'])) {
    $_SESSION['utm'] = array('source'=>'-','medium'=>'-');
    if (!empty($_GET['utm_source']) && is_scalar($_GET['utm_source'])) {
        $_SESSION['utm']['source'] = $_GET['utm_source'];
    }
    if (!empty($_GET['utm_medium']) && is_scalar($_GET['utm_medium'])) {
        $_SESSION['utm']['medium'] = $_GET['utm_medium'];
    }
....
}


События: OnWebPageInit, OnPageNotFound
Параметр FormLister: &defaultsSources=`session:utm:utm`
В шаблоне FormLister:
[+utm.source.value+] и [+utm.medium.value+]


В старых версиях FormLister &defaultsSources не заработал, не беда, можно через prepare, что-то типа этого:
$FormLister->setField('utm.source',$_SESSION['utm']['source']);	
$FormLister->setField('utm.medium',$_SESSION['utm']['medium']);	

0 комментариев

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.