Cookie в WordPress: как установить, получить и удалить

Cookie в WordPress: как установить, получить и удалить

От автора: в отличие от современных веб-приложений, WordPress не фиксирует данные о поступающих запросах. При создании приложения на базе WordPress вам понадобится какая-то система для обработки сессий. Cookies в WordPress это простой, стандартный механизм управления определенными настройками авторизованных пользователей на front-end стороне. В этой статье мы кратко обсудим куки, зачем они нужны в WordPress, и как вебмастер может их использовать.

Обзор Cookies

Куки это маленькая частичка информации, посылаемая сайтом веб-браузеру пользователя. Они могут хранить данные о пользователе, такие как имя пользователя/пароль, добавленные в корзину товары в интернет-магазинах и т.д. При повторном посещении сайта куки посылаются из браузера обратно на сервер, тем самым сайт получает данные о предыдущей активности пользователя.

Зачастую файлы куки зашифрованы. Основная их задача это помогать пользователям. Если часто посещаемый вами сайт запоминает ваш логин и пароль, вам не нужно повторно авторизовываться при посещении данного сайта. При посещении интернет-магазина куки помогут сайту показать вам товары, которые вы больше всего хотите купить.

Как теперь видно, куки очень важны для сайта. Ниже мы покажем, как добавить куки в WordPress. Прежде чем погрузиться в код давайте обсудим детали:

В этом уроке мы будем использовать PHP код.

Посылать куки мы будем в HTTP заголовках.

Все функции будут запускаться в init.

Код будет добавляться в файл function.php активной темы.

Установка Cookies в WordPress

Зачем нам нужно устанавливать куки?

Когда пользователь посещает ваш сайт, он вбивает свою информацию (логин, пароль, личные данные и т.д.) в форму на стороне front-end’а. Ваш сайт должен каким-либо образом уведомить пользователя о том, что его данные будут сохранены в куки. К примеру, на некоторых сайтах есть галочка «Запомнить меня».

Устанавливать куки в WordPress мы будем через функцию setcookie(). С ее помощью потом можно будет получить значение и по желанию модифицировать его. Процесс предполагает, что мы будем посылать куки вместе с другими HTTP заголовками.

Как установить куки

Функция setcookie() довольно проста. Синтаксис:

setcookie(name, value, expire, path, domain, secure, httponly);

Все что требуется это передать те значения, которые вы собираетесь хранить. Если вы хотите сохранить логин пользователя, то код будет примерно такой:

<?php
    add_action( 'init', 'my_setcookie_example' );
    function my_setcookie_example() {
   setcookie( $visitor_username, $username_value, 3 * DAYS_IN_SECONDS, COOKIEPATH, COOKIE_DOMAIN );
    }
?>

Обратите внимание, что время жизни куки задано на 3 дня. Это означает, что куки умрут через 3 дня после создания. DAYS_IN_SECONDS – константа WordPress. Последние два параметра можно не задавать, WordPress сделает это за вас. COOKIEPATH задает путь к вашему сайту, а COOKIE_DOMAIN задает домен сайта.

Если вы более опытный PHP разработчик, то время смерти куки можно задать на основе выбранных или введенных данных пользователя. Вы когда-нибудь видели, как некоторые сайты спрашивают «Запомнить меня на Х дней»? Принцип работы точно такой же, только время жизни куки задается на основе выбранного или введенного значения Х.

После запуска функции можно заметить, что в браузер добавятся новые куки. Для их модификации необходимо всего лишь установить куки заново при помощи функции setcookie().

Получение Cookies в WordPress

Зачем нам нужно вытягивать куки?

Если вы задали куки, то при повторном посещении пользователем сайта вам понадобится их извлечь. Дабы избежать различных ошибок, сперва мы воспользуемся функцией isset(), чтобы определить, установлено ли значение в куки, т.е. заданы они или нет.

Если куки были установлены, мы воспользуемся функцией echo для их отображения.

Как получить куки в WordPress

Чтобы извлечь куки, созданные в примере выше, мы воспользуемся глобальной ассоциативным массивом $_COOKIE. Чтобы вытянуть значение, необходимо в качестве ключа массива задать имя куки.

<?php
    if(!isset($_COOKIE[$visitor_username])) {
    echo "The cookie: '" . $visitor_username . "' is not set.";
    } else {
    echo "The cookie '" . $visitor_username . "' is set.";
    echo "Value of cookie: " . $_COOKIE[$visitor_username];
    }
?>

Заметьте, что перед тем, как передать имя куки в массив $_COOKIE, необходимо убедиться, что они были заданы. В примере выше мы проверяем существование куки при помощи функции isset(). Функция возвращает TRUE, если куки были заданы и FALSE в обратном случае.

Основной момент, на который стоит обратить внимание здесь, заключается в том, что когда мы задаем куки и посылаем их в HTTP заголовках, их значения автоматически шифруются. Похожим образом куки расшифровываются при их извлечении. Если по каким-либо причинам вам не нужно шифровать куки при передаче, то можно воспользоваться функцией setrawcookie().

Удаление Cookies в WordPress

Зачем нужно удалять куки в WordPress?

Теперь, когда вы умеете задавать и извлекать куки, вам, наверное, интересно, как их удалять. Нужна еще одна функция? Нет.

Как я говорил выше, манипулировать куки в WordPress очень легко. Для удаления мы воспользуемся функцией unset(), а затем воспользуемся той же функцией, что и для установки. Запутанно? Не беспокойтесь, ниже все пояснено. Отличаться будет только время смерти куки.

<?php
    unset( $_COOKIE[$visitor_username] );
    setcookie( $visitor_username, '', time() - ( 15 * 60 ) );
?>

В первой строке мы при помощи функции unset() удаляем значение куки из массива $_COOKIE. Во второй строке мы принудительно убиваем куки, установив пустое значение и отрицательное время смерти.
Первый параметр – имя куки, второй – null, третий параметр означает 15 минут назад (15*60).

После удаления куки необходимо перенаправить пользователей на домашнюю страницу WordPress. Для этого добавьте код ниже:

wp_redirect( home_url(), 302 );
exit;

Необязательно перенаправлять пользователя на домашнюю страницу WordPress сразу после удаления куки. Куки можно удалять в фоновом процессе с другими задачами. Однако рано или поздно вам придется перенаправить пользователя на другую страницу, условно говоря на домашнюю.

Заключение

В этой статье мы научились простому способу установки, получения и удаления куки в WordPress на языке PHP. Также мы рассмотрели несколько переменных, с которыми вы будете еще сталкиваться во время работы, а также узнали их назначение. Манипуляции с куки в WordPress крайне просты для тех, кто знаком с основами PHP – а те, кто не знаком, теперь знают!

По ссылке можно ознакомиться с куки и официальной документацией WordPress. Были ли у вас проблемы при работе с куки? Вы знаете какие-либо другие способы установки, получения и удаления куки? Будем рады обсудить все в комментариях.

Автор: Rafay Saeed Ansari

Источник: http://www.sitepoint.com/

Редакция: Команда webformyself.

Хотите быстро научиться создавать сайты и блоги на WordPress с уникальным дизайном?

Получите самую полную в Рунете бесплатную систему обучения создания сайтов на WordPress “Уникальный сайт с нуля”

Получить

Метки: ,

Комментарии Вконтакте:

Комментарии Facebook:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Я не робот.

Spam Protection by WP-SpamFree