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");