Cookies в WordPress
PHP

Cookies в WordPress

1 февраля 2016 116

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

ThemeForest: Лучшие темы интернет-магазинов для WordPress
ThemeForest: Лучшие темы интернет-магазинов для WordPress

Никакой магии тут нет! Все выше перечисленные примеры строятся чаще всего с помощью cookies.

Cookie (куки) — это небольшие текстовые файлы, в которые браузер записывает данные с посещенных вами сайтов. Файлы cookie позволяют сайтам «запоминать» своих посетителей, например, чтобы каждый раз не переспрашивать их логин и пароль.

Сегодня я покажу некоторые примеры использования cookies в WordPress.

Пример 1

Установка cookies осуществляется с помощью стандартной PHP-функции setcookie(). Её синтаксис такой:

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

Устанавливаем cookie и сохраняем в нём имя пользователя.

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

Получаем cookie и выводим из него имя пользователя.

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 информацию об имени пользователя. Например, через 15 минут.

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

Пример 2

Допустим, нам необходимо выяснить, посетитель впервые зашёл на сайт или уже был ранее. Для этого устанавливаем всем новым посетителям (за исключением админов) cookie. Код лучше всего установить в файл functions.php вашей активной темы:

function set_newuser_cookie() {
	if ( !is_admin() && !isset($_COOKIE['sitename_newvisitor'])) {
		setcookie( 'sitename_newvisitor', 1, time()+3600*24*100, COOKIEPATH, COOKIE_DOMAIN, false);
	}
}
add_action( 'init', 'set_newuser_cookie');

А саму проверку, например, непосредственно в том месте, где будет выводиться результат.

if (isset($_COOKIE['sitename_newvisitor'])) {
     echo 'С возвращением!';
}
else {
     echo 'Приветствуем нового посетителя!';
}

Пожалуй, главным минусом cookies, является его привязка к браузеру. Если тот же самый пользователь зайдёт на сайт с другого браузера или другого компьютера, ранее установленный cookie не сработает. Вместо этого установится новый cookie.

Автор: Иван Данилин

Практикующий веб-разработчик, специализируюсь на платформе WordPress.

Комментарии

Разгоните свой WordPress

Хостинг-провайдер номер один в России — REG.RU

Подробнее