Как проверить разрешение на использование cookie


Для проверки в коде плагина или шаблона, разрешил ли пользователь использование куки определенной категории, используйте следующие способы:

На бэкенде (PHP)

1. Получить объект модели приватности:

$privacyModel = MG::get('privacyModel');

2. Вызвать метод проверки разрешения группы куки:

$isFunctionCookieGroupAllowed = $privacyModel->checkUserAgreedCookieGroup(Models_Privacy::COOKIE_GROUP_FUNCTIONAL);

Всего доступно 4 группы куки для проверки:

  • Models_Privacy::COOKIE_GROUP_ESSENTIAL - Технические (строго необходимые)
  • Models_Privacy::COOKIE_GROUP_FUNCTIONAL - Функциональные
  • Models_Privacy::COOKIE_GROUP_ANALYTICS - Аналитические
  • Models_Privacy::COOKIE_GROUP_MARKETING - Маркетинговые

Для отслеживания изменения списка разрешенных групп используйте хук:

Models_Privacy_changeUserAgreedCookieGroups

Для обеспечения совместимости шаблона или плагина со старыми версиями системы нужно проверять наличие класса Models_Privacy:

if (class_exists('Models_Privacy')) {
    // do something
}

На фронтенде (JavaScript)

1. Получить массив групп кук, использование которых пользователь разрешил:

const userAgreedCookieGroups = window?.userAgreedCookieGroups || [];

2. Реализовать проверку, что необходимая вам группа входит в список разрешенных:

if (userAgreedCookieGroups.includes('functional')) {
    return;
}

Для отслеживания изменения списка разрешенных групп используйте событие userAgreedCookieGroupsChange документа:

$(document).on('userAgreedCookieGroupsChange', () => { 
    // do something 
});

Для обеспечения совместимости шаблона или плагина со старыми версиями системы нужно проверять наличие переменной userAgreedCookieGroups:

if (typeof(window.userAgreedCookieGroups) !== 'undefined') {
    // do something
}