В този пост ще си поговорим за видовете работа с бисквитки в WordPress. Ще научиш как да подходиш за създаване, обновяване и изтриване на бисквитки чрез functions.php файла (и съответно PHP синтаксис за WordPress). Ще ти покажа и как можеш да постигнеш това с JavaScript. Съответно ще можеш да прецениш кога и как да използваш един от двата варианти за управление на бисквитките.
Important!
Преди да продължим обаче трябва да уточним три важни неща:
Първо – този пост няма за цел да те учи на програмиране, нито има амбиции за нещо подобно. Просто ще получиш готови решения под формата на код, които да поставиш и промениш леко за твоите конкретни нужди при работа с бисквитки в WordPress. И ще ти покажа как и къде.
Второ – бисквитките станаха масово популярни покрай GDPR. И докато уменията от този пост могат да ти помогнат да подобриш стратегията по регламента, то поста не е по тази тема. Той ще ти даде базови познания за бисквитките и начините за тяхното създаване, изтриване и обновяване в WordPress.
Трето – ще научиш как да създаваш и управляваш свои бисквитки. Те могат да имат влияние над други бисквитки или да са сами за себе си. Разбира се, ако добавиш правилната програмна логика и код към функциите и методите, които ще видиш по-долу. Тази статия няма за цел да те научи как да управляваш абсолютно всички бисквитки на твоя сайт. Особено тези, които идват от трети страни – това е извън обхвата на текущия пост.
А сега нека да продължим!
Създаване, изтриване и обновяване на бисквитки в WordPress чрез PHP:
Трябва да знаеш, че бисквитката не се изтрива в типичния смисъл на думата. Тя има валидност и ако искаш да я изтриеш, трябва да прекратиш валидността ѝ. Същото важи до някаква степен и за обновяването. Идеята е, че всеки път, когато задаваш бисквитка с дадено име, тя ще приеме последно подадените ѝ стойности и това ще остане в браузъра.
В WordPress можеш да използваш следния PHP код с примерни функции (добавя се във functions.php по възможност на твоята дъщерна тема) за трите вида операции за работа с бисквитки в WordPress:
За да създадеш бисквитка с име isActive, която има стойност true, използвай това:
function setting_isActive() { setcookie( "isActive", "true", (time()+31556926), COOKIEPATH , COOKIE_DOMAIN, "secure"); } add_action( 'init', 'setting_isActive' );
Кодът създава функция по създаване на бисквитката isActive със следното съдържание:
- стойност за isActive – true
- дата на валидност 1 година от текущата дата и час (времето е в секунди)
- бисквитката ще се създаде за текущата локация в сайта (URL-а на който е в момента посетителя) и за текущия домейн. Последните две се регулират от променливите COOKIEPATH и COOKIE_DOMAIN. На тяхно място можеш да поставиш твои стойности при желание, но задължително в кавички.
- последният параметър secure прави бисквитката защитена спрямо изискванията на съвременните браузъри ( в частност за SameSite=None requires Secure – прочети повече за тях тук)
За да я обновиш използвай този код:
function updating_isActive() { setcookie( "isActive", "false", (time()+31556926), COOKIEPATH , COOKIE_DOMAIN, "secure"); } add_action( 'init', 'updating_isActive' );
В него запазваш всичко от преди с изключение на стойността за isActive, когато извикаш функцията updating_isActive. Тя вече ще е false. Разбира се и периода ще се е увеличил с 1 година, считано от текущата дата и час при изпълнение на функцията за обновяване на бисквитката.
За да изтриеш бисквитката подходи така:
function unsetting_isActive() { setcookie( "isActive", "true", (time()-3600), COOKIEPATH , COOKIE_DOMAIN, "secure"); } add_action( 'init', 'unsetting_isActive' );
Кодът задава дата, която вече е отминала и не е актуална. Браузърът ще премахне бисквитката като изтекла, в момента в който извикаш функцията unsetting_isActive.
Създаване, изтриване и обновяване на бисквитки в WordPress чрез JavaScript:
WordPress е PHP базиран. Почти винаги ще е добра идея да подходиш с методите за PHP. Но ако поради някаква причина желаеш да използваш JavaScript, тогава ще ти дам отново три решения за работа с бисквитки в WordPress. Принципа е отново същия – няма типично обновяване и изтриване – има бисквитка с последно зададена стойност, която или е валидна или не е и съответно изчезва от браузъра.
JavaScript можеш да използваш навсякъде в WordPress. Или чрез добавяне на файл с кода към хедъра/футъра на темата ти или чрез добавяне директно в редакторите на WordPress. Преценката ще е твоя.
Нека да създадем същата бисквитка от примера по-горе със същото съдържание като в случая ще посочим фиксирана дата, която ще е 01.01.2045г. Също така тук домейна трябва да бъде изписан от теб. Замести test.test с името на твоя домейн. Същото важи и за path. В примера по-долу, той е „/“ и това означава, че бисквитката ще е настроена на ниво домейн. Ако искаш друг path – просто замести стойността с конкретния URL. А сега към кодовете. Ще ти покажа само код, който обработва бисквитката. Ако ти трябва функция, в която да го добавиш – прочети повече за JavaScript функциите онлайн:
За създаване:
document.cookie = "isActive=true; expires=Thu, 01 Jan 2045 12:00:00 UTC; domain=test.test; path=/; secure;";
За обновяване (isActive става false):
document.cookie = "isActive=false; expires=Thu, 01 Jan 2045 12:00:00 UTC; domain=test.test; path=/; secure;";
За изтриване:
document.cookie = "isActive=true; expires=Thu, 01 Jan 1945 12:00:00 UTC; domain=test.test; path=/; secure;";
С това този блог пост приключва. Надявам се тази информация да бъде от полза за бъдещата ти работа с бисквитки в WordPress. Окуражавам те да не се ограничиш само до нея, а да погледнеш и следните източници по темата:
- Cookies and WordPress: How to Set, Get and Delete
- JavaScript Cookies
- How to Set, Get, and Delete WordPress Cookies (like a Pro)
- WordPress Cookies
- Google и всичко което можеш да откриеш в него за работа с бисквитки в WordPress 🙂