Eenvoudige WordPress cookie banner

Plak de volgende code aan het begin van je functions.php bestand:

// Hook om de cookie consent banner toe te voegen aan wp_head
add_action('wp_head', 'wpx_add_cookie_banner');

function wpx_add_cookie_banner() {
    ?>
    <style>
        /* Eenvoudige styling voor de cookie-banner */
        #cookie-consent-banner {
            position: fixed;
            bottom: 0;
            width: 100%;
            background-color: #333;
            color: #fff;
            text-align: center;
            padding: 10px;
            z-index: 9999;
        }
        #cookie-consent-banner button {
            background-color: #0073aa;
            color: #fff;
            border: none;
            padding: 5px 10px;
            margin-left: 10px;
            cursor: pointer;
        }
    </style>

    <div id="cookie-consent-banner" style="display: none;">
        Deze website gebruikt cookies om je ervaring te verbeteren. Door verder te gaan, stem je in met het gebruik van cookies.
        <button id="accept-cookies">Accepteer</button>
    </div>

    <script>
        document.addEventListener('DOMContentLoaded', function () {
            // Controleer of de consent cookie al bestaat
            if (!getCookie('cookie_consent')) {
                document.getElementById('cookie-consent-banner').style.display = 'block';
            }

            // Functie om een cookie in te stellen
            function setCookie(name, value, days) {
                var expires = "";
                if (days) {
                    var date = new Date();
                    date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
                    expires = "; expires=" + date.toUTCString();
                }
                document.cookie = name + "=" + (value || "") + expires + "; path=/";
            }

            // Functie om een cookie op te halen
            function getCookie(name) {
                var nameEQ = name + "=";
                var ca = document.cookie.split(';');
                for (var i = 0; i < ca.length; i++) {
                    var c = ca[i];
                    while (c.charAt(0) == ' ') c = c.substring(1, c.length);
                    if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
                }
                return null;
            }

            // Wanneer op de "Accepteer" knop wordt geklikt
            document.getElementById('accept-cookies').addEventListener('click', function () {
                setCookie('cookie_consent', 'accepted', 365); // Zet de cookie voor één jaar
                document.getElementById('cookie-consent-banner').style.display = 'none';

                // Nu de toestemming is gegeven, laad Google Tag
                loadGoogleTag();
            });

            // Functie om Google Tag te laden
            function loadGoogleTag() {
                var gtagScript = document.createElement('script');
                gtagScript.async = true;
                gtagScript.src = 'https://www.googletagmanager.com/gtag/js?id=YOUR_TRACKING_ID';
                document.head.appendChild(gtagScript);

                gtagScript.onload = function () {
                    window.dataLayer = window.dataLayer || [];
                    function gtag() { dataLayer.push(arguments); }
                    gtag('js', new Date());
                    gtag('config', 'YOUR_TRACKING_ID');
                };
            }

            // Laad Google Tag direct als de toestemming al gegeven is
            if (getCookie('cookie_consent') === 'accepted') {
                loadGoogleTag();
            }
        });
    </script>
    <?php
}

Uitleg Cookie banner code


Cookie Banner HTML en CSS

De banner is simpel opgezet met een “Accepteer” knop die onderaan de pagina verschijnt als de toestemmingscookie niet is ingesteld.

JavaScript Logica

  • Als de gebruiker geen cookies heeft geaccepteerd (gecontroleerd via een cookie), zal de banner worden weergegeven.
  • Zodra de gebruiker op “Accepteer” klikt, wordt er een cookie (cookie_consent) ingesteld met de waarde ‘accepted’.
  • Als cookies zijn geaccepteerd, laadt het script dynamisch Google Tag Manager (gtag.js).

Google Tag Manager Laden

Het Google Tag-script wordt alleen geladen als de gebruiker toestemming geeft, hetzij direct, of nadat de gebruiker op de “Accepteer” knop heeft geklikt.


Vervang Google Analytics Tracking ID


Zorg ervoor dat je YOUR_TRACKING_ID in het script vervangt door je daadwerkelijke Google Analytics Tracking ID.


Optioneel – Verbeter vormgeving cookie banner

Je kunt de stijl van de cookie-banner verder aanpassen met CSS om deze beter af te stemmen op het ontwerp van je website.

Met deze opzet wordt je Google Analytics-tag alleen geladen nadat de gebruiker toestemming geeft, wat je helpt om te voldoen aan privacyregelgeving zoals de GDPR.

me

Over Frank Schrijvers

Hey! Ik ben Frank Schrijvers, WordPress developer, webdesigner, vader en indoor climber. Ik ben het hart en de ziel van WPX en help je graag verder met je WordPress of WooCommerce website.

Heb je een leuk project en wil je met mij samenwerken?

Dat kan! Neem gerust contact op via mail of telefoon.