Mise en œuvre de la loi européenne sur les cookies dans votre site WordPress

Si vous habitez en Europe, vous avez probablement entendu parler de la loi sur les cookies. La loi exacte change d'un pays à l'autre et certaines des lignes directrices ne sont pas claires quant aux moyens de la mettre en œuvre..

Cet article n'a pas pour objet de discuter ou de conseiller sur la loi, mais de vous montrer la méthode à suivre pour créer un plugin de loi de cookie simple..

Le code pour ce plugin simple pourrait aller dans votre thème functions.php fichier, mais je pense qu'il vaut mieux laisser un plugin car ce n'est pas le genre de fonctionnalité que vous voulez perdre entre des thèmes changeants.

La fonctionnalité

L'implémentation sera aussi simple que possible. En haut de l'écran, une barre affiche un message, un bouton pour le supprimer et un lien pour en savoir plus sur les cookies utilisés par le site. Certaines implémentations vont jusqu’à avoir un bouton «refuser» pour les cookies, mais nous ne l’utiliserons pas.. 

Il existe de nombreuses implémentations différentes de cette fonctionnalité, mon préféré étant ce que Google utilise:

Le plugin simple que nous créons au cours de ce didacticiel sera très utile pour un développeur mais il nécessiterait un peu plus de travail si vous souhaitez en faire une solution universelle pour le grand public..

Les outils

Nous allons utiliser jQuery, PHP, HTML et CSS pour ce plugin simple - commençons.

Tout d’abord, nous devons créer un nouveau dossier - disons cookie-pop - et dans ce dossier, nous devons créer un nouveau fichier PHP appelé cookie-pop.php.

La première chose que nous devons faire dans notre fichier PHP est de saisir les informations standard du plugin, comme indiqué par le codex WordPress:

 

Jusqu'ici tout va bien. Nous allons laisser jQuery faire la plupart du travail ici, donc la quantité de PHP que nous devons utiliser est minime. Nous reviendrons sur le PHP plus tard dans l'article.

Le javascript

Créons des dossiers pour notre code JavaScript et CSS. Ce n'est pas essentiel, mais cela aide à garder les choses plus propres et mieux organisées, ce qui n'est jamais une mauvaise chose. Nous appellerons ces js et css.

Afin de savoir si l'utilisateur a accepté les cookies, nous devons définir un cookie qui empêche le message d'apparaître à chaque visite du site. Pour cela, nous allons utiliser un plugin très populaire jQuery. Prenez le plugin de GitHub et déposez le jquery.cookie.js déposer dans votre js dossier. Nous voulons aussi qu’un fichier dépose notre jQuery personnalisé pour le plug-in, alors créez un nouveau fichier dans le dossier. js dossier appelé cookie-pop.js.

Vous remarquerez que j'ai utilisé ici du code JavaScript non précisé - c'est toujours une bonne idée d'inclure une version abrégée de votre code JavaScript avec la version originale lintée, en particulier si vous souhaitez le publier en tant que plugin disponible au public.. 

La minification et la concaténation sont des sujets pour un autre post, mais pour ceux qui sont intéressés, vous pouvez consulter CodeKit, Grunt et Gulp. Pour en savoir plus sur la minification, jetez un œil à certains de ces autres didacticiels intéressants de Tuts +:

  • Revisiter la minification JavaScript
  • Gérer vos tâches de construction avec Gulp.js
  • Meet Grunt, l'outil de construction pour JavaScript

Maintenant, ouvrez votre vide cookie-pop.js déposer et mettre dans le code ci-dessous:


/ * global cookie_pop_text * / (fonction ($) 'use strict'; if ('set'! == $ .cookie ('cookie-pop')) $ ('body') .prepend ('
En utilisant notre site Web, vous acceptez l'utilisation de nos cookies.. Lire la suite…
'); $ ('# accept-cookie') .click (function () $ .cookie ('cookie-pop', 'set'); $ ('.cookie-pop') .remove ();); (jQuery));

Cette méthode jQuery doit être exécutée dans document.ready. L'utilisation de jQuery avec WordPress est légèrement différente de l'utilisation de la bibliothèque seule.

 Par défaut, WordPress utilise jQuery en mode de compatibilité, ce qui signifie qu’au lieu d’utiliser le $ symbole, vous devez taper jQuery. Heureusement, il existe quelques moyens de contourner ce problème - dans l'exemple ci-dessus, nous avons adopté le $ il peut donc être utilisé dans nos fonctions.

Il y a pas mal de choses dans ce code, alors décomposons-le un peu. La première chose que nous faisons ici est de vérifier s’il existe un cookie appelé cookie-pop et qu'il n'a pas valeur de ensemble en utilisant le biscuit method (qui appartient au script jQuery Cookie, expliqué plus en détail ici). 

Si le cookie a déjà été configuré, nous n'avons rien à faire, l'utilisateur aura déjà vu le message et appuyé sur le bouton. Si elle n’a pas cette valeur, nous ajoutons le du document HTML avec un

qui a une classe de .cookie-pop. le div nous avons créé a '+ cookie_pop_text.more +'
');

La dernière chose à faire est de dire à WordPress d’utiliser réellement ces fichiers - pour cela, nous utilisons le wp_enqueue_script () méthode:

wp_enqueue_script ('cookie-pop-script');

Vous remarquerez que j'ai seulement mis en file d'attente le cookie-pop-script script here - c’est ici que ces déclarations de dépendance entrent en jeu lors de l’enregistrement de nos scripts. WordPress mettra automatiquement toutes les dépendances en file d'attente.

Ensuite, le CSS. Cela fonctionne de la même manière que le JavaScript:

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

La dernière chose à faire est de mettre tout cela ensemble dans notre cookie_pop_scripts_and_styles () fonction et l'accrocher à la wp_enqueue_scripts action, donc le paquet complet ressemble à ceci:

function cookie_pop_scripts_and_styles () wp_enqueue_script ('jquery-cookie', plugins_url ('/lib/jquery.cookie.js', __FILE__), tableau ('jquery'), '1.4.1', true); wp_register_script ('cookie-pop-script', plugins_url ('/js/cookie-pop.js', __FILE__), array ('jquery', 'jquery-cookie'), '1.0.0', true); wp_localize_script ('cookie-pop-script', 'cookie_pop_text', array ('message' => __ ('En utilisant notre site, vous acceptez l'utilisation de nos cookies.', 'cookie-pop'), 'bouton' => __ ('OK', 'cookie-pop'), 'plus' => __ ('Lire la suite…', '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');

Résumer

Maintenant, nous avons un plugin fonctionnel avec un simple message et un bouton sur lequel cliquer pour effacer le message et le faire ne plus apparaître pendant un laps de temps spécifié. 

L'exemple que j'ai utilisé ici concerne la loi européenne sur les cookies, mais en réalité, ce type de fonctionnalité pourrait être utile pour toutes sortes de choses dans WordPress, telles que l'affichage des délais de livraison réduits à Noël dans un magasin de commerce électronique.. 

La mise en œuvre ici est très simple et nécessite une édition manuelle pour le lien "lire plus" - ceci pourrait facilement être étendu avec l’API des options WordPress..