Implementarea legii UE Cookie în site-ul dvs. WordPress

Dacă locuiți în Europa, probabil ați auzit despre legea cookie-urilor. Legile exacte se schimbă de la o țară la alta și unele dintre liniile directoare sunt puțin clar despre modurile în care ar trebui implementate.

Acest articol nu este de a discuta sau de a oferi consiliere cu privire la lege, ci pentru a vă arăta metoda din spatele creării unui plugin simplu popup pentru legea cookie-urilor.

Codul pentru acest plugin simplu ar putea merge în tema ta functions.php fișier, dar cred că este mai bine ca un plugin, deoarece nu este un fel de funcționalitate pe care doriți să-l pierdeți între schimbarea temelor.

Funcționalitatea

Implementarea va fi cât mai simplă posibil. Vom avea o bară în partea de sus a ecranului care afișează un mesaj, un buton pentru a elimina mesajul și un link pentru a citi mai multe despre cookie-urile pe care le utilizează site-ul. Unele implementări merg până la atingerea unui buton "deny" pentru cookie-uri, dar nu vom folosi asta. 

Există o mulțime de implementări diferite ale acestei funcționalități, preferința mea personală este ceea ce Google utilizează:

Pluginul simplu pe care îl creăm în timpul acestui tutorial va fi grozav pentru un dezvoltator de a utiliza pe proiecte, dar ar avea nevoie de puțin mai mult de lucru dacă ați dori să o transformați într-o soluție "de o mărime potrivită tuturor" pentru uz general.

Uneltele

Vom folosi jQuery, PHP, HTML și CSS pentru acest plugin simplu - să începem.

Mai întâi de toate, trebuie să facem un nou dosar - să spunem cookie-pop - și în cadrul acelui dosar trebuie să facem un nou fișier PHP numit cookie-pop.php.

Primul lucru pe care trebuie să-l facem în fișierul nostru PHP este să introduceți informațiile despre plugin-ul standard conform instrucțiunilor de la Codex-ul WordPress:

 

Până acum, bine. Vom lăsa jQuery să facă majoritatea lucrărilor aici, astfel încât cantitatea de PHP pe care trebuie să o folosim este minimă. Vom reveni la PHP mai târziu în articol.

JavaScript

Să creăm niște foldere pentru JavaScript și CSS. Acest lucru nu este esențial, dar ajută la menținerea lucrurilor mai curate și mai organizate, ceea ce nu este niciodată un lucru rău. Vom numi asta js și css.

Pentru a capta faptul că utilizatorul a fost de acord cu cookie-urile, trebuie să setăm un cookie care să oprească mesajul care apare la fiecare vizită a site-ului. Pentru aceasta vom folosi un plugin foarte popular jQuery. Luați pluginul de la GitHub și aruncați jquery.cookie.js fișier în dvs. js pliant. De asemenea, dorim ca un fișier să renunțe la jQuery personalizat pentru plugin, pentru a crea un fișier nou în js director numit cookie-ul pop.js.

Veți observa că am folosit JavaScript neintenționat aici - este întotdeauna o idee bună să includeți o versiune minimizată a JavaScript-ului dvs. împreună cu versiunea originală, linted, mai ales dacă doriți să lansați acest plugin ca un plugin public. 

Minificarea și concatenarea sunt subiecte pentru un alt post, dar pentru cei care sunt interesați, puteți verifica CodeKit, Grunt și Gulp. Pentru a citi mai multe despre minificare, aruncați o privire la unele dintre aceste alte tutoriale Tuts +:

  • Revizuirea minerificării JavaScript
  • Gestionarea sarcinilor dvs. de construire cu Gulp.js
  • Faceți cunoștință cu Grunt, The Build Tool pentru JavaScript

Acum deschide-ți martorul cookie-ul pop.js fișier și puneți în codul de mai jos:


/ * globală cookie_pop_text * / (funcția ($) 'use strict'; if ('set'! == $ .cookie ('cookie-pop'
Prin utilizarea site-ului nostru, sunteți de acord cu utilizarea cookie-urilor noastre. Citeste mai mult…
'); $ ('# accept-cookie') .click (funcția () $ .cookie ('cookie-pop', 'set'); (jQuery));

Această metodă jQuery trebuie executată în interiorul document.ready. Utilizarea jQuery cu WordPress este ușor diferită de utilizarea bibliotecii pe cont propriu.

 Implicit, WordPress utilizează jQuery în modul de compatibilitate, ceea ce înseamnă că în loc să utilizați $ simbol, trebuie să tastați jQuery. Din fericire, există câteva modalități de a aborda această problemă - în exemplul de mai sus, am trecut în $ astfel încât acesta poate fi folosit în cadrul funcțiilor noastre.

Se întâmplă destul de mult în acest cod, așa că l-am lăsat puțin mai jos. Primul lucru pe care îl facem aici este să verificăm dacă există un cookie numit cookie-pop și că nu are valoare a stabilit folosind fursec (care aparține scriptului jQuery Cookie, explicat mai jos aici). 

Dacă cookie-ul a fost deja setat, atunci nu este nevoie să faceți nimic deoarece utilizatorul va fi văzut deja mesajul și va apăsa butonul. Dacă nu are acea valoare atunci suntem prepending a documentului HTML cu

care are o clasă de .cookie-pop. div pe care am creat-o are '+ cookie_pop_text.more +'
');

Ultimul lucru pe care trebuie să-l facem este să spui WordPress să folosească de fapt aceste fișiere - pentru asta folosim wp_enqueue_script () metodă:

wp_enqueue_script ("cookie-pop-script");

Veți observa că l-am encuitat doar cookie-pop-script scenariu aici - aici sunt acele declarații de dependență care intră în joc atunci când ne-am înregistrat scripturile. WordPress va încorpora automat toate dependențele.

În continuare, CSS. Acest lucru funcționează în același mod ca JavaScript:

wp_enqueue_style ('cookie-pop-style', plugins_url ('/css/cookie-pop.css', __FILE__), array (), '1.0.0');

Ultimul lucru pe care trebuie să-l faceți este să puneți totul împreună în noi cookie_pop_scripts_and_styles () funcția și cârlig la wp_enqueue_scripts acțiune, astfel încât pachetul complet arată astfel:

funcția cookie_pop_scripts_and_styles () wp_enqueue_script ('jquery-cookie', plugins_url ('/lib/jquery.cookie.js', __FILE__), array ('jquery'), '1.4.1', true); wp_register_script ('cookie-pop-script', plugins_url ('/js/cookie-pop.js', __FILE__), array ('jquery', 'jquery-cookie'); wp_localize_script ('cookie-pop-script', 'cookie_pop_text', array ('message' => => __ ('OK', 'cookie-pop'), 'more' => __ ('Read More ...', 'cookie-pop'))); wp_enqueue_script ("cookie-pop-script"); wp_enqueue_style ('cookie-pop-style', plugins_url ('/css/cookie-pop.css', __FILE__), array (), '1.0.0');  add_action ('wp_enqueue_scripts', 'cookie_pop_scripts_and_styles');

Summing It Up

Acum avem un plug-in de lucru cu un mesaj simplu și un buton pentru a face clic, care va șterge mesajul și îl va face să nu apară din nou pentru o anumită perioadă de timp. 

Exemplul pe care l-am folosit aici este legile cookie ale UE, dar în realitate acest tip de funcționalitate ar putea fi util pentru tot felul de lucruri din WordPress, cum ar fi afișarea timpilor de livrare tăiați la Crăciun într-un magazin de eCommerce. 

Implementarea aici este foarte simplă și necesită o editare manuală pentru linkul "citiți mai mult" - acest lucru ar putea fi ușor extins la utilizarea opțiunii WordPress Options.

Cod