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

Привет!

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

Поехали...

Иногда нам нужно различать новых и возвращающихся посетителей нашего сайта и выводить им разную информацию. А самый простой вариант реализации этого - использовать Cookies.

Если ты хочешь вставить такой особый текст в тему своего WordPress, то тебе нужно вставить код описанный ниже в файл "Функции темы" functions.php в редакторе Внешнего вида:

function set_newuser_cookie() {
    if (!isset($_COOKIE['sitename_newvisitor'])) {
        setcookie('sitename_newvisitor', 1, time()+1209600, COOKIEPATH, COOKIE_DOMAIN, false);
    }
}
add_action( 'init', 'set_newuser_cookie');

Этот код установит новую Cookie с названием "mysite_oldvisitor", время истечения которой равно 2-м неделям. Чтобы сделать больше или меньше, измени в коде выше 14 на любое желаемое количество дней.

Больше о функции setcookie можно почитать на суперском таком сайте.

Чтобы выводить разную информацию возвращающимся и новым посетителям, ты можешь использоваться что-то такое:

if (isset($_COOKIE['sitename_newvisitor'])) {
     echo 'Welcome back!';
}
else {
     echo 'Hello new visitor!';
}
Успехов!

[ Прочитайте комменты ниже или напишите свой... ]

Ищете хостинг для своего сайта? Могу порекомендовать свой (нажмите здесь)

4 комментария к “Как установить свою cookie WordPress?”

  1. Владислав 31.08.2014 в 13:39 #

    Здравствуйте!
    Использовал ваш код для своей задачи - пользователю показывается всплывающее окно, в случае если он новый посетитель на сайте. Но мой скрипт работает следующим образом - он запускается не сразу при входе (что раздражало бы), а спустя 20 секунд. Проблема - код срабатывает следующим образом: посетитель защел на сайт и если он 20 секунд проводит на одной странице - все нормально, код скрипт срабатывает. Но если человек зашел на главную, к примеру, провел там 5 секунд и перешел во внутреннюю - все, скрипт не срабатывает, так как уже работает sitename_newvisitor = true, то есть перешел во внутреннюю страницу - и функция считает уже не считает его новым посетителем

    • Богдан 25.09.2014 в 11:55 #

      Добрый день, Владислав.

      Если я вас правильно понял, то вам нужно сделать так, чтобы cookie устанавливалась только если прошло 20 секунд и появилось всплывающее окно.

      Для этого вам нужно cookie устанавливать не через PHP, а через Javascript, прямо где-то рядом с вызовом вашего всплыв. окна.

      Это делается через запись и чтение document.cookie . Поищите в гугле инструкции на тему "работа с cookie javascript".

  2. akaDingo 04.12.2014 в 01:40 #

    Отличная статья для полностью нулевого человека. Автору респект! Жаль только что поисковики её находят лишь когда вобьёшь конкретно "wordpress установить кукисы", а вот "wordpress куки" уже и не находит

  3. Алексей 01.12.2016 в 10:17 #

    Что то непонятно - вы устанавливаете куку "sitename_newvisitor" или "mysite_oldvisitor"? Изменить 14 в коде выше? Так в коде нет ни каких 14, а есть кол-во секунд. Вводите читателя в заблуждение. За функцию спасибо, пригодилась =)