Borlabs Cookie und Polylang

Datum: 29. October 2019
Autor: Bastian
Kategorie: Datenschutz
Polylang und Borlabs-Cookie

Borlabs Cookie ist recht simple einzustellen. Ja hier und da ist es mal etwas komplizierter, aber doch immer machbar… Was uns aber wirklich Kopfschmerzen bereitet hat waren mehrsprachige Seiten mit Polylang (für WPML gilt wohl das gleiche). Wie es geht die Einstellungen für die Deutsche Seite am schnellsten und problemlos auf andere Sprache zu übertragen zeigen wir euch im Folgenden, doch erstmal die Probleme:

  • Wie verhindere ich das setzen des pll_language Cookies vor Bestätigung der Borlabs Cookie Abfrage?
  • Wie stelle ich ein, dass über alle Sprachen hinweg nur 1x die Borlabs Cookie Abfrage erscheint und nicht für jede Sprache eine separate Cookie-Einstellung verwendet wird?
  • Muss ich für alle Sprachen alle Cookies neu anlegen?

Am Ende gibt es da noch ein kleines Fazit wie üblich.

Wie verhindere ich das setzen des pll_language Cookies vor Bestätigung der Borlabs Cookie Abfrage?

Der Cookie von Polylang wird zwar auch durch Borlabs verhindert, aber er taucht für Bruchteile von Sekunden auf bevor er wieder gelöscht wird. Zumindest war das bei mir der Fall also habe ich ihn, den Cookie, lieber mit Folgenden Vorgehen komplett unter Kontrolle.

Der pll_language Cookie hält eigentlich nur fest, welche Sprache der Nutzer auf der letzten Seite benutzt hat. Wirklich wichtig wird dieser Cookie wohl erst, wenn es zum Warenkorb oder Kasse geht, denn hier weiß WordPress nicht was für eine Sprache es anzeigen soll. Also müssen wir den pll_language Cookie erstmal entfernen und dann doch wieder auf jeder Seite setzen.

Als erstes setzen fügen wir in der wp-config.php Datei, welche ihr im root-Ordner eurer WordPress Installation findet folgendes am Ende ein. Es wird dem Plugin Polylang einfach mitgeteilt, dass keine Cookies mehr gesetzt werden sollen. Damit wäre Teil 1 schonmal erledigt.

/* 
 * do not set polylang language cookie by default (before borlabs cookie plugin kicks in)
 * borlabs should take care of it
 */
define('PLL_COOKIE', false);

Jetzt wollen wir nach der Zustimmung zu Cookies (genauer nach der Zustimmung zu den Essentiellen Cookies), dass der Cookie von Polylang wieder gesetzt wird. Dazu gehen wir im Borlabs Plugin auf Cookies und legen hier einen Cookie unter Essentiell für Polylang an. Im Feld „Opt-in Code„, welcher bei jedem Seitenaufruf ausgeführt wird, wenn der Besucher der Webseite die Essentiellen Plugins akzeptiert, fügen wir folgenden Code ein. Dieser liest die Sprache des Dokuments aus z.B. „en-EN“. Dann trennen wir am „-“ und nehmen uns den ersten Teil, nämlich das „en“ (in dieser Art speichert Polylang die Sprache ab). Dann bauen wir uns noch einen Datums String ein Jahr in der Zukunft, welches wir für die Laufzeit des Cookies brauchen. Mit document.cookie bauen wir uns dann unseren eigenen „pll_language“ zusammen.

<script>
  var sitelang = document.documentElement.lang
  var pllLangContents = sitelang.split("-");
  var pllLang = pllLangContents[0];
  var expireDate = new Date(new Date().setFullYear(new Date().getFullYear() + 1));
  document.cookie = "pll_language=" + pllLang +"; expires=" + expireDate +"; path=/";
</script>

Wie stelle ich ein, dass über alle Sprachen hinweg nur 1x die Borlabs Cookie Abfrage erscheint und nicht für jede Sprache eine separate Cookie-Einstellung verwendet wird?

Borlabs Cookie Plugin Einstellungen Tabellen zusammenführenDa wir für alle Seiten in der Regel die selben Cookies verwenden, da wir ja auch die selbe Funktionalität anbieten, brauchen wir nicht für jede Sprache eine separate Cookie-Einwilligung. Dies gilt nebenbei nicht nur für mehrsprachige Seiten sondern in etwas eingeschränkter Form auch für Multisites mit denen man mit einer WordPress-Installation mehrere Seiten betreut. Wir stellen bei den Einstellungen des Borlabs Cookie Plugins als erstes mal ein, dass „Einwilligungen zusammenführen“ auf AN steht. Damit wird nicht für jede Sprache ein eigenes Bolabs-Cookie PopUp getriggert und die Einstellungen die wir in der Sprache Deutsch treffen gilt dann auch für alle anderen Sprachen.

Muss ich für alle Sprachen alle Cookies neu anlegen?

Update: Der Import-/Export-Weg ist zwar immer noch der schnellste, aber mittlerweile können die selben IDs auch sprachübergreifend manuell vergeben werden. Also ist das nachpflegen einzelner Cookies kein Problem mehr.
Hier ist die Antwort Jein. Also damit du nicht jeden Cookie neu anlegen musst und damit das ganze überhaupt sprachübergreifend funktioniert müssen wir hier wie folgt vorgehen. Damit Borlabs versteht welche Cookies in einer anderen Sprache akzeptiert wurden und die Tabellen richtig zusammenführt (siehe oben) muss die ID des einzelnen Cookies über alle Sprachen hinweg identisch sein. Das kann man aber nur erreichen, wenn man über den Punkt „Import & Export“ in der Deutschen Version (die man gerade gepflegt hat) unter Export das Feld „Cookies & Cookie Gruppen“ kopiert. Die Sprache oben in der WordPress Menüleiste auf die Sprache die man einpflegen will z.B. Englisch ändert. Hier jetzt unter Import den gerade kopierten deutschen Text  unter „Cookies & Cookie Gruppen“ einfügt und den Button „importieren“ drückt. Jetzt sind die Cookie Gruppen und Cookies aus dem Deutschen auch in der aktuellen Sprache verfügbar und können übersetzt werden.

Das Vorgehen Import & Export zum anlegen von Cookie-Einträgen unter der selben ID ist die mir einzig bekannte Möglichkeit. Wir gehen davon aus, dass Borlabs da bald eine manuelle Lösung bereitstellt. Schwierig wird es nämlich jetzt wenn ein neuer Cookie hinzukommt, man will sich ja nicht mit dem Export und Import Verfahren wieder alle Übersetzungen zu nichte machen.

Fazit

Es funktioniert und in den nächsten Wochen werden bestimmt auch noch so Kleinigkeiten, wie das anlegen eines Cookies unter der selben ID in mehreren Sprachen, repariert (Update: Ist inzwischen möglich). Man muss es eben einmal machen, damit man weiß wie es geht. Leider ist der erste Durchlauf recht zeitaufwendig und man hat seine try and error Phase. Deswegen ist es vielleicht ratsam ein, wenn man kein besseres Tutorial als das hier findet, einen Fachmann ranzulassen.
Wir nehmen an, dass die Sache für WPML ganz ähnlich aussieht. Die Hauptsache ist jedoch, dass Borlabs Cookie auf einer multilingualen Seite ohne größere Probleme möglich ist…