Umsetzung des EU-Cookie-Gesetzes in Ihre WordPress-Site

Wenn Sie in Europa leben, haben Sie wahrscheinlich vom Cookie-Gesetz gehört. Die genauen Gesetze ändern sich von Land zu Land, und einige Richtlinien sind unklar, wie sie umgesetzt werden sollten.

Dieser Artikel soll nicht über das Gesetz diskutieren oder beraten, sondern zeigt Ihnen die Methode zum Erstellen eines einfachen Cookie-Popup-Plugins.

Der Code für dieses einfache Plugin könnte in Ihrem Theme enthalten sein Functions.php Datei, aber ich denke, es ist besser als Plugin, da es nicht die Funktionalität ist, die Sie zwischen wechselnden Themen verlieren möchten.

Die Funktionalität

Die Implementierung wird so einfach wie möglich sein. Am oberen Rand des Bildschirms wird eine Leiste angezeigt, in der eine Nachricht angezeigt wird, eine Schaltfläche, um die Nachricht zu schließen, und einen Link, um mehr über die von der Site verwendeten Cookies zu erfahren. Bei einigen Implementierungen gibt es eine Schaltfläche zum Ablehnen von Cookies, die wir jedoch nicht verwenden werden. 

Es gibt viele verschiedene Implementierungen dieser Funktionalität. Mein persönlicher Favorit ist das, was Google verwendet:

Das einfache Plugin, das wir in diesem Lernprogramm erstellen, ist großartig für Entwickler, die in Projekten verwendet werden können, aber es würde ein wenig mehr Arbeit erfordern, wenn Sie es als "one size fits all" -Lösung für den allgemeinen öffentlichen Gebrauch machen möchten.

Die Werkzeuge

Wir werden jQuery, PHP, HTML und CSS für dieses einfache Plugin verwenden - los geht's.

Zuerst müssen wir einen neuen Ordner erstellen - sagen wir Cookie-Pop - In diesem Ordner müssen wir eine neue PHP-Datei erstellen cookie-pop.php.

Das erste, was wir in unserer PHP-Datei tun müssen, ist die Eingabe der Standard-Plugin-Informationen gemäß den Anweisungen des WordPress-Codex:

 

So weit, ist es gut. Wir werden jQuery die meiste Arbeit hier erledigen lassen, so dass die Menge an PHP, die wir verwenden müssen, minimal ist. Wir werden später in diesem Artikel auf PHP zurückkommen.

Das JavaScript

Erstellen wir einige Ordner für unser JavaScript und CSS. Dies ist nicht wesentlich, aber es hilft, die Dinge sauberer und organisierter zu halten, was nie eine schlechte Sache ist. Wir rufen diese an js und css.

Um zu erfassen, dass der Benutzer den Cookies zugestimmt hat, müssen wir ein Cookie setzen, das die Meldung bei jedem Besuch der Website abschaltet. Dafür verwenden wir ein sehr beliebtes jQuery-Plugin. Nimm das Plugin von GitHub und lassen Sie die jquery.cookie.js Datei in Ihrem js Mappe. Wir möchten auch eine Datei, in der unsere benutzerdefinierte jQuery für das Plugin abgelegt wird. Erstellen Sie also eine neue Datei in der js Ordner genannt cookie-pop.js.

Sie werden feststellen, dass ich hier unbemerktes JavaScript verwendet habe. Es ist immer eine gute Idee, eine reduzierte Version Ihres JavaScript-Codes zusammen mit der ursprünglichen gefütterten Version hinzuzufügen, insbesondere wenn Sie dieses als öffentlich verfügbares Plugin veröffentlichen möchten. 

Minification und Verkettung sind Themen für einen anderen Beitrag, aber für Interessierte können Sie CodeKit, Grunt und Gulp ausprobieren. Um mehr über die Minifizierung zu erfahren, werfen Sie einen Blick auf einige dieser großartigen Tuts + Tutorials:

  • Erneute Überprüfung der JavaScript-Reduzierung
  • Verwalten Sie Ihre Build-Aufgaben mit Gulp.js
  • Lernen Sie Grunt kennen, das Build-Tool für JavaScript

Öffnen Sie jetzt Ihren Rohling cookie-pop.js Datei und fügen Sie den folgenden Code ein:


/ * global cookie_pop_text * / (Funktion ($) 'use strict'; if ('set'! == $ .cookie ('cookie-pop')) $ ('body') .prepend ('
Durch die Nutzung unserer Website stimmen Sie der Verwendung unserer Cookies zu. Weiterlesen…
'); $ ('# accept-cookie') .click (function () $ .cookie ('cookie-pop', 'set'); $ ('.cookie-pop') .remove ();); (jQuery));

Diese jQuery-Methode sollte innerhalb von ausgeführt werden document.ready. Die Verwendung von jQuery mit WordPress unterscheidet sich geringfügig von der Verwendung der Bibliothek allein.

 Standardmäßig verwendet WordPress jQuery im Kompatibilitätsmodus, dh anstelle von $ Symbol, müssen Sie jQuery eingeben. Glücklicherweise gibt es einige Möglichkeiten, um dieses Problem zu umgehen - in dem obigen Beispiel sind wir in der $ So kann es innerhalb unserer Funktionen verwendet werden.

In diesem Code ist ziemlich viel los. Als Erstes prüfen wir, ob ein Cookie aufgerufen wird Cookie-Pop und dass es keinen Wert von hat einstellen mit der Plätzchen Methode (die zum jQuery Cookie-Skript gehört, wird hier weiter erklärt). 

Wenn der Cookie bereits gesetzt wurde, müssen wir nichts tun, da der Benutzer die Nachricht bereits gesehen und die Schaltfläche gedrückt hat. Wenn es diesen Wert nicht hat, setzen wir das vor des HTML-Dokuments mit einem

das hat eine Klasse von .Cookie-Pop. Das div wir haben ein erstellt '+ cookie_pop_text.more +'
');

Das letzte, was wir tun müssen, ist WordPress mitzuteilen, dass diese Dateien tatsächlich verwendet werden sollen wp_enqueue_script () Methode:

wp_enqueue_script ('cookie-pop-script');

Sie werden feststellen, dass ich das nur in die Warteschlange gestellt habe Cookie-Pop-Skript Skript hier - hier setzen diese Abhängigkeitserklärungen ein, wenn wir unsere Skripts registrieren. WordPress erfasst automatisch alle Abhängigkeiten.

Als nächstes das CSS. Dies funktioniert auf die gleiche Weise wie das JavaScript:

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

Das letzte, was wir tun müssen, ist, dies alles in unserem cookie_pop_scripts_and_styles () Funktion und haken Sie es an wp_enqueue_scripts Aktion, also sieht das komplette Paket so aus:

function cookie_pop_scripts_and_styles () wp_enqueue_script ('jquery-cookie', plugins_url ('/lib/jquery.cookie.cs.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'), '1.0.0', true); wp_localize_script ('cookie-pop-script', 'cookie_pop_text', array ('message' => __ ('Durch die Nutzung unserer Website erklären Sie sich mit der Verwendung unserer Cookies einverstanden.', 'cookie-pop'), 'button' => __ ('OK', 'cookie-pop'), 'more' => __ ('Mehr lesen ...', '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');

Zusammenfassend

Jetzt haben wir ein funktionierendes Plugin mit einer einfachen Nachricht und einer Schaltfläche zum Klicken, mit der die Nachricht gelöscht und für eine bestimmte Zeit nicht mehr angezeigt wird. 

Das Beispiel, das ich hier verwendet habe, bezieht sich auf das EU-Cookie-Gesetz, aber in Wirklichkeit könnte diese Art von Funktionalität für alle möglichen Dinge in WordPress nützlich sein, wie beispielsweise die Anzeige von Lieferzeiten zu Weihnachten in einem E-Commerce-Shop. 

Die Implementierung hier ist sehr einfach und erfordert einige manuelle Bearbeitungen für den Link "Weitere Informationen" - dies könnte leicht mit der WordPress-Options-API erweitert werden.