Implementazione della legge sui cookie dell'UE nel tuo sito WordPress

Se vivi in ​​Europa, probabilmente hai sentito parlare della legge sui cookie. La legge esatta cambia da paese a paese e alcune delle linee guida sono un po 'oscure sui modi in cui dovrebbe essere implementata.

Questo articolo non è per discutere o consigliare sulla legge, ma per mostrarti il ​​metodo alla base della creazione di un semplice plugin popup di cookie law.

Il codice per questo semplice plugin potrebbe andare nel tuo tema functions.php file, ma penso che sia meglio lasciarlo come plug-in in quanto non è il tipo di funzionalità che si desidera perdere tra la modifica dei temi.

La funzionalità

L'implementazione sarà il più semplice possibile. Verrà visualizzata una barra nella parte superiore dello schermo che visualizza un messaggio, un pulsante per chiudere il messaggio e un collegamento per ulteriori informazioni sui cookie utilizzati dal sito. Alcune implementazioni arrivano ad avere un pulsante 'nega' per i cookie, ma non lo useremo. 

Esistono molte implementazioni diverse di questa funzionalità, il mio preferito è ciò che Google utilizza:

Il semplice plugin che creiamo durante questo tutorial sarà fantastico per uno sviluppatore da utilizzare sui progetti, ma avrebbe bisogno di un po 'più di lavoro se si volesse renderlo una soluzione "unica per tutti" per uso pubblico in generale.

Gli attrezzi

Utilizzeremo jQuery, PHP, HTML e CSS per questo semplice plug-in: iniziamo.

Prima di tutto, dobbiamo creare una nuova cartella, diciamo biscotto-pop - e all'interno di quella cartella abbiamo bisogno di creare un nuovo file PHP chiamato cookie-pop.php.

La prima cosa che dobbiamo fare all'interno del nostro file PHP è inserire le informazioni standard del plugin come indicato dal codice WordPress:

 

Fin qui tutto bene. Lasciamo che jQuery faccia la maggior parte del lavoro qui, quindi la quantità di PHP che dobbiamo usare è minima. Torneremo al PHP più avanti nell'articolo.

Il JavaScript

Creiamo alcune cartelle per i nostri JavaScript e CSS. Questo non è essenziale, ma aiuta a mantenere le cose più pulite e organizzate, il che non è mai una cosa negativa. Li chiameremo js e css.

Al fine di rilevare che l'utente ha accettato i cookie, è necessario impostare un cookie che interrompa il messaggio visualizzato in ogni visita del sito. Per questo useremo un plugin jQuery molto popolare. Prendi il plugin da GitHub e rilasciare il jquery.cookie.js file nel tuo js cartella. Vogliamo anche che un file lasci cadere la nostra jQuery personalizzata per il plug-in, quindi crea un nuovo file nel file js cartella chiamata cookie-pop.js.

Noterai che ho usato JavaScript non ancora terminato qui - è sempre una buona idea includere una versione miniata del tuo JavaScript insieme alla versione originale, lossa, specialmente se volessi rilasciarlo come plugin pubblicamente disponibile. 

Minificazione e concatenazione sono argomenti per un altro post, ma per coloro che sono interessati, è possibile controllare CodeKit, Grunt e Gulp. Per saperne di più su Minification, dai un'occhiata ad alcuni di questi tutorial di Tuts +:

  • Rivisitazione del codice JavaScript
  • Gestione delle attività di build con Gulp.js
  • Incontra Grunt, lo strumento di costruzione per JavaScript

Ora apri il tuo vuoto cookie-pop.js file e inserisci il seguente codice:


/ * global cookie_pop_text * / (function ($) 'use strict'; if ('set'! == $ .cookie ('cookie-pop')) $ ('body') .prepend ('
Utilizzando il nostro sito Web, l'utente accetta l'uso dei nostri cookie. Leggi di più…
'); $ ('# accept-cookie') .click (function () $ .cookie ('cookie-pop', 'set'); $ ('.cookie-pop') .remove ();); (jQuery));

Questo metodo jQuery dovrebbe essere eseguito all'interno document.ready. Usare jQuery con WordPress è leggermente diverso dall'usare la libreria da sola.

 Per impostazione predefinita, WordPress utilizza jQuery in modalità compatibilità che significa invece di usare il $ simbolo, devi digitare jQuery. Fortunatamente, ci sono alcuni modi per aggirare questo problema - nell'esempio sopra abbiamo passato nel $ quindi può essere utilizzato all'interno delle nostre funzioni.

C'è un bel po 'di cose in questo codice, quindi lasciamolo un po'. La prima cosa che facciamo qui è controllare se c'è un cookie chiamato biscotto-pop e che non ha valore di impostato usando il biscotto metodo (che appartiene allo script jQuery Cookie, ulteriormente spiegato qui). 

Se il cookie è già stato impostato, non è necessario fare nulla in quanto l'utente avrà già visualizzato il messaggio e premuto il pulsante. Se non ha quel valore, allora stiamo preparando il del documento HTML con a

che ha una classe di .biscotto-pop. Il div abbiamo creato ha a '+ cookie_pop_text.more +'
');

L'ultima cosa che dobbiamo fare è dire a WordPress di usare effettivamente questi file - per questo usiamo il wp_enqueue_script () metodo:

wp_enqueue_script ('cookie-pop-script');

Noterai che ho solo accodato il biscotto-pop-script script qui - questo è dove queste dichiarazioni di dipendenza entrano in gioco quando abbiamo registrato i nostri script. WordPress accoderà automaticamente tutte le dipendenze.

Il prossimo, il CSS. Funziona allo stesso modo del JavaScript:

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

L'ultima cosa da fare è mettere tutto questo insieme cookie_pop_scripts_and_styles () funzione e collegalo al wp_enqueue_scripts azione, quindi il pacchetto completo ha il seguente aspetto:

function cookie_pop_scripts_and_styles () wp_enqueue_script ('jquery-cookie', plugins_url ('/lib/jquery.cookie.js', __FILE__), array ('jquery'), '1.4.1', vero); wp_register_script ('cookie-pop-script', plugins_url ('/js/cookie-pop.js', __FILE__), array ('jquery', 'jquery-cookie'), '1.0.0', vero); wp_localize_script ('cookie-pop-script', 'cookie_pop_text', array ('message' => __ ('Usando il nostro sito web, accetti l'uso dei nostri cookie.', 'cookie-pop'), 'button' => __ ('OK', 'cookie-pop'), 'more' => __ ('Leggi altro ...', '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');

Riassumendo

Ora abbiamo un plug-in funzionante con un semplice messaggio e un pulsante per fare clic che cancellerà il messaggio e lo farà non mostrare più per un determinato periodo di tempo. 

L'esempio che ho usato qui è per la normativa europea sui cookie, ma in realtà questo tipo di funzionalità potrebbe essere utile per ogni genere di cosa in WordPress come mostrare tempi di consegna ridotti a Natale in un negozio di e-commerce. 

L'implementazione qui è molto semplice e richiede alcune modifiche manuali per il link "leggi di più" - questo potrebbe facilmente essere esteso usando l'API delle opzioni di WordPress.