Як встановити, отримати і видалити куки в 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 та управлінні сесіями.