Cookie в bitrix

Теги: bitrix

Как сохранить cookie на d7:

\Bitrix\Main\Context::getCurrent()->getResponse()->addCookie(
    new \Bitrix\Main\Web\Cookie('cookieName', 'cookieValue')
);

Но на странице обязательно должен быть подключен

require($_SERVER['DOCUMENT_ROOT'] . '/bitrix/footer.php'); 

или

require($_SERVER["DOCUMENT_ROOT"].BX_ROOT."/modules/main/include/epilog_after.php");

т. к. куки d7 добавляются именно в эпилоге.

При этом старый код

$APPLICATION->set_cookie('cookieName', 'cookieValue');

сработает даже без подключения эпилога.

Как получить cookie на d7:

\Bitrix\Main\Context::getCurrent()->getRequest()->getCookie('cookieName');

Как удалить cookie на d7:

\Bitrix\Main\Context::getCurrent()->getResponse()->addCookie(
    new \Bitrix\Main\Web\Cookie('cookieName', 'cookieValue', time() - 3600)
);