/ Bitrix: сохранение UTM меток в cookie для их дальнейшего использования

Bitrix: сохранение UTM меток в cookie для их дальнейшего использования

26 окт 2024
Дмитрий М.
2

Реализуем сохранение UTM-меток для их дальнейшего использования путём добавления обработчика событий.

Для этого в init.php файл добавим следующий код:

use Bitrix\Main\Web\Cookie;
AddEventHandler("main", "OnBeforeProlog", "setCookie");
function setCookie(){
    //UTM Метки
    if (isset($_GET['utm_source'])) {
        $cookie = new Cookie("utm_source", $_GET['utm_source'], time() + 60*60*24*7);
        \Bitrix\Main\Context::getCurrent()->getResponse()->addCookie($cookie);
    }
    if (isset($_GET['utm_medium'])) {
        $cookie = new Cookie("utm_medium", $_GET['utm_medium'], time() + 60*60*24*7);
        \Bitrix\Main\Context::getCurrent()->getResponse()->addCookie($cookie);
    }
    if (isset($_GET['utm_campaign'])) {
        $cookie = new Cookie("utm_campaign", $_GET['utm_campaign'], time() + 60*60*24*7);
        \Bitrix\Main\Context::getCurrent()->getResponse()->addCookie($cookie);
    }
    if (isset($_GET['utm_content'])) {
        $cookie = new Cookie("utm_content", $_GET['utm_content'], time() + 60*60*24*7);
        \Bitrix\Main\Context::getCurrent()->getResponse()->addCookie($cookie);
    }
    if (isset($_GET['utm_term'])) {
        $cookie = new Cookie("utm_term", $_GET['utm_term'], time() + 60*60*24*7);
        \Bitrix\Main\Context::getCurrent()->getResponse()->addCookie($cookie);
    }

}
            
        

Для установки времени жизни cookie - используется выражение time() + 60*60*24*7.

7 - это количество дней жизни cookie. В примере cookie установлено время жизни - 7 дней от момента установки.

Чтобы получить и использовать значение cookie надо воспользоваться кодом:

global $APPLICATION;
$UTM_Source = $APPLICATION->get_cookie("utm_source");
$UTM_Medium = $APPLICATION->get_cookie("utm_medium");
$UTM_Campaign = $APPLICATION->get_cookie("utm_campaign");
$UTM_Content = $APPLICATION->get_cookie("utm_content");
$UTM_Term = $APPLICATION->get_cookie("utm_term");
            
        

Статья была полезна? Поблагодарите автора.

Самые читаемые
#1С Битрикс, #Bitrix CMS, #.htaccess, #настройка редиректов
4 авг 2019
#bitrix:news, #сортировка, #фильтрация, #bitrix:catalog, #catalog.section, #news.list
16 дек 2020
#Хлебные крошки, #1С Битрикс, #Bitrix CMS, #bitrix:breadcrumbs, #component_epilog, #кэширование
1 окт 2018
#bitrix, #свойства элементов, #обработчик событий, #OnBeforeIBlockElementUpdate, #OnIBlockElementSetPropertyValues
21 июл 2020
#Bitrix CMS, #breadcrumb, #bitrix:breadcrumbs, #хлебные крошки, #настройка
13 фев 2019
#ресайз изображений, #1С Битрикс, #Bitrix CMS
3 мар 2019
#bitrix, #robots.txt, #sitemap.xml, #поддомены, #мультисайтовость
16 окт 2018
#bitrix, #bitrix:catalog.section, #скидки, #товары со скидкой, #страница скидок, #страница со скидками
4 окт 2018
#bitrix, #пользовательские свойства, #тип свойств, #привязка к элементам
27 ноя 2019