Hallo Freunde!
Ich habe einen simplen Cookie Banner in HTML / CSS / JS erstellt und möchte diesen nun in eine Wordpress Seite integrieren. Wie bekomme ich den Code in meine Wordpress Seite?
Vielen Dank für eure Hilfe!
Um schreiben oder kommentieren zu können, benötigen Sie ein Benutzerkonto.
Sie haben schon ein Benutzerkonto? Melden Sie sich hier an.
Jetzt anmeldenHier können Sie ein neues Benutzerkonto erstellen.
Neues Benutzerkonto erstellen
Hallo Freunde!
Ich habe einen simplen Cookie Banner in HTML / CSS / JS erstellt und möchte diesen nun in eine Wordpress Seite integrieren. Wie bekomme ich den Code in meine Wordpress Seite?
Vielen Dank für eure Hilfe!
Hallo!
Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.
Der sauberste Weg wäre indem Du ein Plugin dazu schreibst: https://developer.wordpress.org/plugins/intro/
Alternativ kann man das sicherlich auch dadurch erreichen indem Du andere Plugins verwendest, z.B.:
* Code Snippet wenn Du das per Wordpress-Hooks einbinden willst: https://de.wordpress.org/plugins/code-snippets/
* dieses hier wenn du deine Quellcodes einfach einfügen willst: https://de.wordpress.org/plugins/custom-css-js/
Danke für deine Antwort!
Was ist denn der Unterschied zu den Plugins? Ist das Code Snippets Plugin nur für PHP Code?
Ich suche eine Möglichkeit den HTML / CSS und JS Code als snippet einzufügen und diesen Code dann direkt beim Start der Seite auszuführen. Das müsste doch eigentlich mit beiden Plugins funktionieren?
Ja, genau. Code Snippets fügt nur PHP-Codes ein. Das kannst Du jedoch nutzen um deine Quellcodes an den richtigen Stellen in der Ausgabe zu platzieren. Beim 2. Plugin kannst Du einfach nur deinen CSS und JS-Code einfügen, ihn aber halt nur abhängig von den Möglichkeiten des Plugins platzieren.
Kann ich auch HTML in das custom CSS /JS Plugin einfügen?
Ja, das geht dort ebenfalls. Hättest Du bereits rausfinden können indem Du es fix mal installierst.
Stimmt, ich bin allerdings noch mit dem JS Code für den Cookie beschäftigt und weiß nicht genau wie ich bei Akzeptanz den Google Analytics code ausführen kann. Kann man hier im Forum auch JavaScript Fragen stellen?
Frag doch einfach.
Ok, also das hier ist der JavaScipt Code für den Cookie Banner:
[FONT=Tahoma]
[COLOR=#0000ff]let cookieModal = document.querySelector('.cookie-consent-modal');
let cancelCookieBtn = document.querySelector('.btn.cancel');
let acceptCookieBtn = document.querySelector('.btn.accept');
cancelCookieBtn.addEventListener('click', function () {
cookieModal.classList.remove('active');
});
acceptCookieBtn.addEventListener('click', function () {
cookieModal.classList.remove('active');
localStorage.setItem('cookieAccepted', 'yes');
});
setTimeout(function () {
let cookieAccepted = localStorage.getItem('cookieAccepted');
if (cookieAccepted != 'yes') {
cookieModal.classList.add('active');
}
}, 2000);[/COLOR][/FONT]
Wenn nun jemand auf "Akzeptieren" klickt, soll der folgende Google Analytics Code ausgeführt werden:
[FONT=Tahoma][COLOR=#ff0080] <!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=PASTIDHERE"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'PASTIDHERE');
</script>
[/COLOR]
[COLOR=#000000]Meine Fragen ist:
Wie kann ich den Google Analytics Code in den JavaScript Code integrieren, so das dieser bei Akzeptanz ausgeführt wird?[/COLOR][/FONT]
[FONT=Tahoma][COLOR=#000000]Ich bin sehr dankbar für Hilfe!!
[/COLOR][/FONT]
Binde ihn nur unter einer Bedingung ein, umgib ihn also mit einer Funktion.
<script>
function useGA() {
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'PASTIDHERE');
}</script>
Die Funktion useGA führst Du dann aus sobald der OK-Button geklickt wird.
Jetzt muss GA natürlich auch beim Laden ausgeführt werden, aber nur wenn die Bestätigung bereits gesetzt wurde. Also z.B.:
<script>
function useGA() {
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'PASTIDHERE');
}
let cookieAccepted = localStorage.getItem('cookieAccepted');
if (cookieAccepted == 'yes') { useGA() }</script>
Alles anzeigen
Das ist jetzt natürlich ungetestet.
Vielen Dank für die Antwort!!
Ich habe den Google Analytics Code jetzt integriert und das ganze sieht jetzt so aus:
let cookieModal = document.querySelector('.cookie-consent-modal');
let cancelCookieBtn = document.querySelector('.btn.cancel');
let acceptCookieBtn = document.querySelector('.btn.accept');
cancelCookieBtn.addEventListener('click', function () {
cookieModal.classList.remove('active');
});
acceptCookieBtn.addEventListener('click', function () {
cookieModal.classList.remove('active');
localStorage.setItem('cookieAccepted', 'yes');
});
setTimeout(function () {
let cookieAccepted = localStorage.getItem('cookieAccepted');
if (cookieAccepted != 'yes') {
cookieModal.classList.add('active');
} else cookieAccepted == 'yes';
useGA();
}, 2000);
function useGA() {
window.dataLayer = window.dataLayer || [];
function gtag() {
dataLayer.push(arguments);
}
gtag('js', new Date());
gtag('config', 'PASTIDHERE');
}
Alles anzeigen
Ich habe also in der setTimeout function ein if /else statement hinzugefügt. Wenn die Cookies nicht akzeptiert wurden dann zeige den Cookie Banner beim erneuten laden, wenn die Cookies akzeptiert wurden dann useGA, also führe den Google Analytics Code aus.
Meinst du das stimmt so?
Noch eine andere Frage, was ist denn mit diesem Code:
Sollte der nicht auch noch integriert werden?
So meinte ich es nicht. Beim Laden der Seite sollte der Analytics-Code sofort geladen werden, nicht nach einem Timeout. Und ja, natürlich musst Du den tagmanager-Code mit einbinden.
ja klar ohne wird es nicht funktionieren. - wobei du bei PASTIDHERE auch noch durch deine ID austauschen solltest...
Ok verstehe, die timeout function macht hier keinen Sinn, also einfach nur if cookie accepted useGA
Passt denn die Reihenfolge oder ist das egal?
Der Code sieht nun so aus:
let cookieModal = document.querySelector('.cookie-consent-modal');
let cancelCookieBtn = document.querySelector('.btn.cancel');
let acceptCookieBtn = document.querySelector('.btn.accept');
cancelCookieBtn.addEventListener('click', function () {
cookieModal.classList.remove('active');
});
acceptCookieBtn.addEventListener('click', function () {
cookieModal.classList.remove('active');
localStorage.setItem('cookieAccepted', 'yes');
});
setTimeout(function () {
let cookieAccepted = localStorage.getItem('cookieAccepted');
if (cookieAccepted != 'yes') {
cookieModal.classList.add('active');
}
}, 2000);
let cookieAccepted = localStorage.getItem('cookieAccepted');
if (cookieAccepted == 'yes') {
useGA();
}
function useGA() {
window.dataLayer = window.dataLayer || [];
function gtag() {
dataLayer.push(arguments);
}
gtag('js', new Date());
gtag('config', 'PASTIDHERE');
}
Alles anzeigen
Wie kann ich denn den Google tagmanager Code einbinden??
Auch in der function useGA??
ja klar ohne wird es nicht funktionieren. - wobei du bei PASTIDHERE auch noch durch deine ID austauschen solltest...
Ja die ID tausche ich noch aus, nur wo soll der tagmanager code rein?
nur wo soll der tagmanager code rein?
Man prüft, ob laut Cookie eine Erlaubnis vorliegt und bindet dann fremde Quellen ein.
Bei meinem Cookie Banner zum selber einbauen liegt in der Beschreibung ein PHP Script bei:
$consentCookieJson = @$_COOKIE['cookie-consent-settings'];
if ($consentCookieJson) {
$consentCookie = json_decode($consentCookieJson);
if($consentCookie && $consentCookie->analyses) {
// do analysing things here
}
}
und nein - ich code nicht in einem Forum und Support für Google noch für die Datenüberwachung biete ich an...
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!