GDPR compliance is slightly more work to handle than the EU Cookie Law was. It’s not OK any longer to tell the user to leave if they don’t like your cookies: you actually have to turn features on/off depending on their consent. This post is to show how to do this using the EU cookie law popup script.
(If you already know this plugin, you can skip ahead to the GDPR compliance bit.)
An easy-to-install jQuery plugin to create EU Cookie Law popups.
Supports multiple layouts out of the box. Works well with Bootstrap. Easy to customize markup and CSS.
This is the demo page. For the code, install instructions and to see how amazingly free it is, go to Github.
Get started
<script src=”https://code.jquery.com/jquery-3.3.1.min.js”></script>
<link rel=”stylesheet” type=”text/css” href=”css/jquery-eu-cookie-law-popup.css”/>
<script src=”js/jquery-eu-cookie-law-popup.js”></script>
Simple popup
You can also choose from these layouts:
- Top of the page (“eupopup”, or “eupopup eupopup-top”)
- Fixed banner on top (“eupopup eupopup-fixedtop”)
- Fixed to bottom (“eupopup eupopup-bottom”)
- Fixed window, to bottom left (“eupopup eupopup-bottomleft”)
- Fixed window, bottom right (“eupopup eupopup-bottomright”)
- Inline (“eupopup eupopup-block”)
And these colours or styles:
- White text on dark background (“eupopup-color-default”)
- Dark text on light background (“eupopup-color-inverse”)
- Compact (“eupopup-style-compact”)
Custom HTML
<div class=”eupopup-markup”>
<div class=”eupopup-head”>This website is using cookies</div>
<div class=”eupopup-body”>We use cookies to ensure that we give you the best experience on our website. If you continue using the site, we\’ll assume that you are happy to receive all cookies on this website.</div>
<div class=”eupopup-buttons”>
<a href=”#” class=”eupopup-button eupopup-button_1″>Continue</a>
<a href=”//www.wimagguc.com/?cookie-policy” target=”_blank” class=”eupopup-button eupopup-button_2″>Learn more</a>
</div>
<div class=”clearfix”></div>
<a href=”#” class=”eupopup-closebutton”>x</a>
</div>
</div>
Parameters
cookiePolicyUrl : ‘https://www.wimagguc.com/?cookie-policy’,
popupPosition : ‘top’,
colorStyle : ‘default’,
compactStyle : false,
popupTitle : ‘This website is using cookies’,
popupText : ‘We use cookies to ensure that we give you the best experience on our website. If you continue without changing your settings, we\’ll assume that you are happy to receive all cookies on this website.’,
buttonContinueTitle : ‘Continue’,
buttonLearnmoreTitle : ‘Learn more’,
buttonLearnmoreOpenInNewWindow : true,
agreementExpiresInDays : 30,
autoAcceptCookiePolicy : false,
htmlMarkup : null
});
Events
‘user_cookie_consent_changed’ event is fired right after the user accepted or rejected the popup.
‘user_cookie_already_accepted’ event is fired on page load if the user already accepted using cookies in a previous session.
// true or false
console.log(“User consent: ” + $(object).attr(‘consent’) );
});
// true or false
console.log(“User consent: ” + $(object).attr(‘consent’) );
});
GDPR compliance
Using Google Analytics integration as an example: it’s still safe to add most of their code as per usual, but only call the initialisation function when the user consent status changed.
<script async src=”https://www.googletagmanager.com/gtag/js?id=UA-XXXXXXX-1″></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
// Don’t call the init functions just yet:
// gtag(‘js’, new Date());
// gtag(‘config’, ‘UA-XXXXXXXX-1’);
function initialiseGoogleAnalytics() {
gtag(‘js’, new Date());
gtag(‘config’, ‘UA-XXXXXXXX-1’);
}
// Subscribe for the cookie consent events
$(document).bind(“user_cookie_already_accepted”, function(event, object) {
initialiseGoogleAnalytics();
});
$(document).bind(“user_cookie_consent_changed”, function(event, object) {
const userConsentGiven = $(object).attr(‘consent’);
if (userConsentGiven) {
// User clicked on enabling cookies. Now it’s safe to call the
// init functions.
initialiseGoogleAnalytics();
}
});
</script>