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

Куки-файлы или Cookies — это специальный инструмент для хранения временной информации в браузере пользователя с целью дальнейшего ее использования для улучшения пользовательского интерфейса посредством персонализации и поведенческого таргетинга. В этой статье мы рассмотрим, как устанавливать, получать и удалять куки-файлы WordPress как это делают разработчики при написании тем и плагинов.

Что такое и зачем нужны куки?

Файлы cookie представляют собой простые текстовые файлы, которые создаются и хранятся в браузере пользователей при посещении того или иного веб-сайта. Файлы cookie используются для добавления различных функций на веб-сайт.

Вот несколько распространенных способов использования файлов cookie на разных сайтах:

  • хранение и управление регистрационными данными пользователя;
  • хранение информации временного сеанса во время посещения пользователями;
  • использование cookie-файлов для запоминания элементов корзины во время посещения пользователя страниц интернет-магазина;
  • отслеживание активности пользователя на сайте, чтобы предлагать ему персонализированный пользовательский интерфейс и более.

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

Вот почему Европейский союз принял специальный закон, который требует от владельцев веб-сайтов сообщать своим посетителям, что они используют файлы cookie для хранения информации.

Как файлы cookie используются на WordPress-сайте?

По умолчанию WordPress использует файлы cookie для управления сеансами входа в систему и аутентификацией. “Движок” также использует куки для запоминания имени пользователя и адреса электронной почты, если он заполняет форму комментария.

Тем не менее, многие плагины WordPress на вашем сайте также могут устанавливать свои собственные файлы cookie. Например, OptinMonster позволяет вам отображать разные формы электронной почты для новых пользователей и возвращающихся посетителей, и это происходит с помощью файлов cookie.

Если вы используете сторонние службы на своем веб-сайте, такие как Google Analytics или Google AdSense, они также могут устанавливать файлы cookie на вашем сайте.

Все все файлы cookie любого веб-сайта вы можете посмотреть в настройках вашего браузера.

Как установить cookie в WordPress?

Все последующие действия предусматривают редактирование основного файла вашей активной WordPress-темы — functions.php.

Если вы не знаете, как редактировать functions.php, то в этом случае Вам поможет плагин ProFunctions.

Чтобы установить cookie-файлы на своем сайте WordPress, для начала рассмотрим специальную PHP-функцию setcookie(). Она принимает следующие параметры:

  • название cookie-файла;
  • значение cookie;
  • период времени, по истечении которого истекает срок действия файла cookie;
  • путь к cookie-файлу;
  • домен (по умолчанию используется домен вашего веб-сайта);
  • передача данных cookie только через HTTPS;
  • доступность cookie только через HTTP и не могут быть использованы скриптами.

Теперь давайте добавим несколько строк в указанный выше файл. Этот код хранит точную метку времени в cookie, когда пользователь посетил ваш сайт.

function wpschool_set_cookies() {
    $visit_time = date( 'F j, Y g:i a' );
    if( !isset( $_COOKIE[$wpb_visit_time] ) ) {
        // установка куки на 1 год
        setcookie( 'wpschool_visit_time', $current_time, time()+31556926 );
    }
}

Теперь вы можете посетить свой веб-сайт, а затем проверить свои файлы cookie в браузере. Вы найдете файл cookie с именем wpschool_visit_time.

Как получить cookie-файл и использовать его в WordPress?

Теперь, когда мы создали файл cookie, который хранится в браузере пользователя в течение 1 года, давайте посмотрим, как можно использовать эту информацию на нашем веб-сайте.

Если вы знаете имя файла cookie, вы можете легко вызвать его в PHP, используя переменную $_COOKIE[]. Давайте добавим код, который не только устанавливает cookie, но также использует его, чтобы выполнить какие-то действия на вашем сайте.

function wpschool_set_cookies2() {

    // дата и время визита пользователя
    $visit_time = date('F j, Y g:i a');
    // проверка, если cookie уже заданы
    if( isset( $_COOKIE['wpschool_visit_time'] ) ) {

        // действия, если cookie уже заданы
        function wpschool_visitor_greeting() {
            // использование данных cookies
            $lastvisit = $_COOKIE['wpschool_visit_time'];
            $string .= 'Вы последний раз посещали наш сайт '. $lastvisit .'. Узнайте, что нового';
            return $string;
        } 

    } else {

        // действия, если cookie не найдены
        function wpschool_visitor_greeting() {
            $string .= 'Вы тут впервые? Проверьте эти ресурсы...' ;
            return $string;
        } 

        // установка cookie
        setcookie( 'wpschool_visit_time', $visit_time, time()+31556926 );
    }

    // создание шорткода
    add_shortcode( 'wpschool_greet_me', 'wpschool_visitor_greeting' );

}
add_action( 'init', 'wpschool_set_cookies2' );

Этот код использует информацию, хранящуюся в файле cookie, и выводит ее с помощью шорткода. Теперь вы можете добавить шорткод [wpschool_greet_me] в любом месте вашего сайта, и он будет отображаться при последнем посещении пользователя.

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

Как удалить cookie в WordPress?

Чтобы удалить файл cookie, вам необходимо добавить следующую строку в указанный файл.

unset( $_COOKIE['wpschool_visit_time'] );

Не забудьте заменить wpschool_visit_time именем файла cookie, который вы пытаетесь удалить.

Давайте добавим этот код в некоторый контекст, используя тот же пример кода, который мы использовали выше. На этот раз мы удалим файл cookie и снова установим его с новой информацией.

function wpschool_set_cookies2() {

    // дата и время визита пользователя
    $visit_time = date( 'F j, Y g:i a' );
    // проверка, если cookie уже заданы
    if( isset( $_COOKIE['wpschool_visit_time'] ) ) {

        // действия, если cookie уже заданы
        function wpschool_visitor_greeting() {
            // использование данных cookies
            $lastvisit = $_COOKIE['wpschool_visit_time'];
            $string .= 'Вы последний раз посещали наш сайт '. $lastvisit .'. Узнайте, что нового';
            // удалить старый файл cookie, чтобы можно было его снова установить с обновленным временем
            unset( $_COOKIE['wpschool_visit_time'] );
            return $string;
        } 

} else {

        // действия, если cookie не найдены
        function wpschool_visitor_greeting() {
            $string .= 'Вы тут впервые? Проверьте эти ресурсы...' ;
            return $string;
        } 
    }

    add_shortcode( 'wpschool_greet_me', 'wpschool_visitor_greeting' );
    // установить или сбросить файл cookie
    setcookie( 'wpschool_visit_time', $visit_time, time()+31556926 );
}
add_action( 'init', 'wpschool_set_cookies2' );

Видно, что этот код удаляет файл cookie как только была использована хранящаяся в нем информация. Позже мы снова установили cookie с обновленной информацией о времени.

Курс WordPress-разработчик
Если Вам понравилась статья — поделитесь с друзьями
Михаил Петров
Привет! Меня зовут Михаил Петров. Я копирайтер и занимаюсь этим с 2013 года. Скрупулезность и ответственность - моя фишка! Не могу делать как попало и добиваюсь, чтоб заказчик сказал минимум “неплохо”. За все время своей работы пришлось написать и отредактировать немало разной “текстовухи”, включая SEO-тексты, отзывы и прочую чушь. На сегодняшний день специализируюсь на написании информационных статей и руководств технического направления. Вижу смысл и светлое будущее в текстах для людей, а не для машин.