2 начина за работа с бисквитки в WordPress

В този пост ще си поговорим за видовете работа с бисквитки в WordPress. Ще научиш как да подходиш за създаване, обновяване и изтриване на бисквитки чрез functions.php файла (и съответно PHP синтаксис за WordPress). Ще ти покажа и как можеш да постигнеш това с JavaScript. Съответно ще можеш да прецениш кога и как да използваш един от двата варианти за управление на бисквитките.

 

 

А сега нека да продължим!

2 начина за работа с бисквитки в 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. Окуражавам те да не се ограничиш само до нея, а да погледнеш и следните източници по темата: