Как установить, получить и удалить куки в WordPress
С помощью файлов cookie (куки) можно просто и элегантно выполнять такие действия, как отслеживание сеансов посетителей сайта, сохранение пользовательских настроек и сбор данных для вашего сайта. В сегодняшней статье мы рассмотрим все важные моменты, которые касаются файлов cookie: что это такое, где они используются и почему. Вы увидите на практике как вручную устанавливать, получать и удалять файлы cookie с вашего сайта на WordPress.
Куки – подробное описание
Хотя их используют практически все сайты в сети, средний пользователь, как правило, мало знает о том, что такое куки и как они используются. Давайте пройдемся по некоторым основам, чтобы прояснить это.
Что такое куки?
Cookie (куки) – это небольшой файл в браузере, который используется для хранения информации о взаимодействии пользователя с сайтом. Они обычно используются для постоянного хранения различных типов данных сеанса (сессии).
Сеанс (сессия) похож на цифровую идентификационную метку. Каждый раз, когда вы посещаете сайт, вам будет присвоена одна сессия на время посещения, и она будет использоваться для идентификации вас во время вашего пребывания на сайте. Сессии являются уникальными для пользователей.
По законодательству, сайты должны запрашивать у посетителей свое согласие перед установкой определенных типов файлов cookie.
Зачем использовать куки и сессии?
Существует множество веских причин для хранения сеансов и файлов cookie, которые позволяют отслеживать поведение пользователя и сохранять важную информацию. Вот несколько из этих причин:
- Новостной сайт может хранить информацию о вашем IP адресе, чтобы показывать вам новости, которые основаны на вашем географическом положении.
- Когда вы добавляете товары в свою корзину на интернет-магазине, этот сайт сохраняет данную информацию, чтобы ваша корзина была актуальной по мере того, как вы продолжаете делать покупки и переходить со страницы на страницу.
- Файлы куки также хранят информацию, которая используется для аутентификации пользователя на сайте. Информация о входе пользователя в систему сохраняется в куках, а позже используется, когда пользователь возвращается на сайт. Это позволяет не запоминать свои логины и пароли для каждого сайта, на котором вы регистрируетесь.
Типы кук
Куки бывают двух типов:
- Сеансовые куки: эти куки хранят информацию о действиях, которые пользователи выполняют в течение одного сеанса. Они используются для сохранения данных о ваших действиях при просмотре сайта, но стираются в конце сеанса.
- Постоянные куки: они также называются файлами cookie для отслеживания. Постоянные cookie сохраняются на вашем ПК до истечения срока их действия или удаления. Они часто используются для управления пользовательскими настройками, которые действительны в течение более длительных периодов времени.
Как проверить, что сайт использует куки?
Если вы хотите узнать, сохраняет ли сайт cookie в вашем браузере, выполните следующую простую процедуру:
- В браузере Chrome нажмите на значок «замка» (если сайт использует безопасное соединение HTTPS), либо значок «инфо» (если сайт использует небезопасное соединение HTTP) слева от адреса сайта в адресной строке.
- В выпадающем списке вы увидите значок Кук и в скобках их количество.
- Нажав на этой надписи, вы увидите все используемые сайтом файлы куки.
Использование куки в сайте на WordPress
WordPress не использует сессии по умолчанию. Он сохраняет куки для аутентификации пользователя, когда он авторизуется на сайте. Здесь важно отметить, что сам движок WordPress не хранит сессии, но многие плагины или темы почти наверняка используют их.
Теперь перейдем к вопросу создания, извлечения и удаления файлов cookie вручную.
Управление файлами cookie в WordPress
Для управления куками мы будем использовать файл функций активной темы (functions.php
).
Шаг №1. Установка (создание) файла куки
Чтобы установить куки в WordPress, вы должны передать значения, которые нужно сохранить. Например, если вы хотите сохранить имя пользователя посетителя вашего сайта, вы можете использовать этот пример кода в файле functions.php
активной темы:
<?php function setting_test_cookie() { setcookie( $user_name, $user_value, 30 * DAY_IN_SECONDS, COOKIEPATH, COOKIE_DOMAIN ); } add_action( 'init', 'setting_test_cookie' ); ?>
Переменная DAY_IN_SECONDS
содержит постоянное значение в WordPress, которое равно количеству секунд в дне. Обратите внимание, что значение времени установлено на 30 * DAY_IN_SECONDS
, что означает, что срок действия файла cookie истекает через 30 дней после создания. COOKIEPATH
определяет путь к вашему сайту, а COOKIE_DOMAIN
является доменом сайта – оба этих параметра задаются настройками вашего сайта (т.е., последние 2 значения можно не указывать).
После обновления страницы на сайте, вы увидите, что соответствующие куки были добавлены в браузер.
Шаг №2. Получение значения кук в WordPress
Чтобы получить cookie, которые мы создали ранее, мы будем использовать переменную $_COOKIE
. Эта переменная является глобальным ассоциативным массивом, в котором хранятся нужные нам данные.
Переменная $_COOKIE
содержит информацию обо всех файлах cookie, которые добавляются в браузер. Чтобы получить значение куки, нужно указывать идентификатор cookie для этой переменной. Идентификатор, который мы будем использовать – это имя, которое мы дали файлу cookie на шаге №1 ($user_name
). Вот пример кода:
<?php if(isset($_COOKIE[$user_name])) { echo "Куки для '" . $user_name . "' установлены"; echo "Значение этой куки следующее: " . $_COOKIE[$user_name]; } else { echo "Куки для: '" . $user_name . "' не установлены"; } ?>
Прежде чем мы передадим идентификатор куки в переменную $_COOKIE
, мы должны убедиться, что этот куки-файл существует. Проверку мы выполняем с помощью функции isset()
, которая возвращает TRUE
, если cookie был установлен, и FALSE
в противном случае.
Шаг №3. Удаление куки в WordPress
Если вам будет нужно удалить файлы cookie со своего сайта, воспользуйтесь следующей заготовкой кода:
<?php unset( $_COOKIE[$user_name] ); setcookie( $user_name, '', time() - 3600 ); ?>
Чтобы удалить значение, которое cookie содержит в ассоциативном массиве, мы используем функцию unset()
. После этого мы принудительно указываем прошедший срок действия куки-файла, установив для его переменной нулевое значение (''
) и передав отметку времени, которая была в прошлом (time() - 3600
). Этот код удалит ваш файл cookie.
Краткий итог
Файлы куки – это важная часть функционирования сайтов в сети Интернет, и даже если вы никогда не будете их использовать на своем сайте, полезно знать, как они работают.
В сегодняшней статье мы основательно рассмотрели, что такое куки и для чего они нужны. Также были рассмотрены практические примеры кода для создания, получения значения куки, а также их удаления с сайта на WordPress. Надеемся, что этот урок поможет вам при более глубоком изучении работы файлов cookie и управлении сессиями.
Роман
Как установить cookie не через файл function.php? А в любом другом месте где я хочу…