This plugin hasn’t been tested with the latest 3 major releases of WordPress. It may no longer be maintained or supported and may have compatibility issues when used with more recent versions of WordPress.



EUROPA websites must follow the Commission’s guidelines on privacy and data protection and inform
users that cookies are not being used to gather information unnecessarily.

The ePrivacy directive – more specifically Article 5(3) – requires prior informed consent for storage for access to information stored on a user’s terminal equipment.
In other words, you must ask users if they agree to most cookies and similar technologies (e.g. web beacons, Flash cookies, etc.) before the site starts to use them.

For consent to be valid, it must be informed, specific, freely given and must constitute a real indication of the individual’s wishes.

In this context this plugin lives.
It simply alters the default document.cookie behavior to disallow cookies to be written on the client side,
until the user accept the agreement. The same does for the server side where since the user does not have accepted the agreement,
then it would not store any cookie.

Note that this plugin blocks any URL you define which generates third-party cookies.

To get detailed informations about the plugin go to


  • How can I customize the banner style?
    Please visit the official documentation page on GitHub

  • Why the output is weird?
    Try to switch from DOMDocument to Regular Expression Engine or vice versa.


  • The configuration page


For manual installation using WordPress plugin installer:
* download the zip file
* upload via the WordPress plugin installer page
* Activate the plugin

For manual installation via FTP
* extract files in a local directory
* upload through FTP the whole directory contents under /wp-content/plugins/eucookielaw.
* Goto plugin administration panel
* Activate the plugin


20 de junio de 2018
Semplice, efficace, intuitivo, responsive, AMP friendly. Praticamente perfetto!
3 de septiembre de 2016
Il migliore in assoluto, fa tutto ed è semplice da configurare. Bravo!
3 de septiembre de 2016
finalmente una soluzione semplice, intuititva e perfettamente funzionamente.!!
3 de septiembre de 2016
Ho provato diversi plugin, sia gratuiti che a pagamento, ma questo è quello che meglio adempie alla normativa in modo semplice e sicuro. Inoltre lo sviluppatore risponde in tempi rapidi alle domande che gli vengono poste. Grazie
3 de septiembre de 2016
Il plugin funziona alla perfezione e riesce a bloccare qualsiasi tipo di cookie. Completamente personalizzabile, ha impostazioni di blocco totale basate sul dominio di provenienza. Solo accettando il banner, nei vari modi messi a disposizione, i cookie vengono caricati. Per esigenze particolari è possibile selezionare cookie consentiti che non devono essere bloccati in nessun caso. E’ possibile utilizzare anche shortcode per far rivalutare la scelta o per bloccare sezioni specifiche del sito. La grafica, il testo e la posizione del banner sono personalizzabili selezionando tra alcune impostazioni standard, oppure in modo più avanzato modificando direttamente il file css. Questo plugin è davvero eccezionale, una soluzione completa ed efficace per rispettare al meglio la cookie law. Un lavoro assolutamente grandioso con assistenza da 10 e lode! Grazie Diego.
3 de septiembre de 2016
Hi Diego, thanks for developing one of the few plugins, or probably the only one, to be 100% compliant with the Cookie Law. IMHO what it misses in otder to be perfect is just one last thing: compatibility with the popular PolyLang multi-language plugin, as for example the «WF Cookie Consent» plugin does. Basically it’s just about grabbing the available languages from PolyLang, and then based on the current language set, show the appropriate message in one or the other language. I think this would also make your plugin simpler and tidier. What do you think? Would you consider implementing it? Thanks a lot and respect for your work! Cheers.
Read all 18 reviews

Contributors & Developers

“EUCookieLaw” is open source software. The following people have contributed to this plugin.


“EUCookieLaw” has been translated into 1 locale. Thank you to the translators for their contributions.

Translate “EUCookieLaw” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.



  • BUGFIX: If some contents to be blocked are present before the EUCookieLaw.js file inclusion the page will become broken.
  • BUGFIX: [WP] Warning: Constants may only evaluate to scalar values bugfix (issue #89)
  • Updated the version number


  • IMPROVEMENTS: [WP] a better way to recognize if there is a cache plugin installed
  • BUGFIX: [WP] Warning: Constants may only evaluate to scalar values bugfix (issue #87)
  • BUGFIX: If the only language configured is Default a javascript error occours (issue #88)
  • BUGFIX: [WP] INIReader.php file was missing (solves issue #86 and part of issue #87)
  • BUGFIX: [WP] Resolved an issue that has broken the Customizer.


  • NEW: In the JavaScript file EUCookieLaw.js now is available the variable EUCOOKIELAW_VERSION with the number of current version.
  • NEW: Now you can set the cookie policy’s banner with multiple languages
  • NEW: [WP] Improved WordPress admin interface to a better management of the multiple languages.
  • NEW: [WP] Multilingual no requires any multilingual plugins
  • NEW: Now you can choose to raise the load event on user agreement.
  • IMPROVEMENTS: The regexp eingine now takes care about Internet Explorer Conditional Comments (solves issue #84)
  • IMPROVEMENTS: [WP] every minute the cron checks if the configuration files into cache are available to solve definitively the issues against WP Super Cache and W3 Total Cache plugins.
  • IMPROVEMENTS: [WP] When wp-config.php is not available in the site root, the plugin notify what to manually wrtite into it.
  • IMPROVEMENTS: Now the banner message is nested into a div to better fit the most sites/users requirements.
  • BUGFIX: [WP] Google Maps and Google Fonts were switched in fast service selection group
  • NOTICE: Some definitions were marked as deprecated since this version
  • Minor bugfixes and general improvements
  • Updated documentation
  • Updated translation files
  • Updated the version number


  • IMPROVEMENTS: The regenerated contents via javascript (without page reload) are correctly parsed evenif there is a document.write call
  • IMPROVEMENTS: if in the query string is present the __eucookielaw argument it will be redirected (with 301: Moved Permanently) to the same resource without the argument to avoid the Google duplicated tags warning.
  • IMPROVEMENTS: if not defined EUCOOKIELAW_BANNER_ADDITIONAL_CLASS will be automatically defined as empty.
  • updated the version number


  • BUGFIX: Removed an accidentally leaved utf8_decode method that broke the output in several servers.
  • updated the version number


  • IMPROVEMENTS: After consent the script raises the window‘s load event to be compliant with some scripts
  • IMPROVEMENTS: Setted DOMDocument Engine to keep the original spacing to avoid some strange behavior
  • BUGFIX: In some circumstances the regexp engine turns in infinite loop
  • updated the version number


  • NEW: Now you can configure the URL where the banner must not be shown (Issue #69, #66, #61).
  • NEW: Now you can set the debug level
  • IMPROVEMENTS: Improved javascript to avoid full page reload
  • IMPROVEMENTS: Improved Regular Expression parsing Engine
  • IMPROVEMENTS: Improved DOMDocument parsing Engine
  • IMPROVEMENTS: [WP] Minor admin panel reorganization
  • IMPROVEMENTS: Better code readability in eucookielaw-header.php
  • BUGFIX: W3TC Page Cache flush causes EUCookieLaw to not work properly (Issue #65).
  • BUGFIX: Cache clear after saving not works properly causing a warning in error log file
  • Minor bugfixes and general improvements
  • updated documentation
  • updated the version number


  • NEW: Now you can define the domain where the cookie will be applied
  • IMPROVEMENTS: Javascript page reload forces contents from server (ignoring browser cache)
  • IMPROVEMENTS: Better readability of the header file
  • BUGFIX: WP_CONTENT_DIR defined instead of EUCL_CONTENT_DIR causes some problems if site is without cache.
  • Minor bugfixes and general improvements
  • updated documentation
  • updated the version number


  • NEW: Now you can set the number of pixels for consent on scroll
  • NEW: If not configured (as constants) the agree and disagree links will be auto-generated by the server.
  • NEW: [WP] If you type twice a blocked URL or if a rule is already covered from another one then it will be visually noticed.
  • NEW: [WP] You can now analyze your home page to which external URL are called and which ones is producing cookeis.
  • NEW: [WP] If user agent contains the information EUCookieLaw:<VERSION_NUMBER> then it will bypass the cookielaw block (used by the site analyzer).
  • IMPROVEMENTS: If you define an empty rule in disallowed URLS it will be ignored
  • IMPROVEMENTS: [WP] Several improvements on admin page and admin JavaScript
  • IMPROVEMENTS: On localhost ( the domain defined for the technical cookie must be empty to grant compatibility with some browsers.
  • BUGFIX: header_remove method in PHP prior 5.3 does not exists.
  • BUGFIX: The non JavaScript version of banner was containing wrong consent/rejection URL
  • BUGFIX: [WP] With some W3 Total Cache configuration, EUCookieLaw was producing invalid output
  • BUGFIX: [WP] Path definition confilcts with NextGenGallery
  • BUGFIX: [WP] On settings page the Replaced scripts source assumes the value of Replaced iframe source also if the value is correctly saved.
  • updated translation files
  • updated documentation
  • updated the version number


  • BUGFIX: [WP] JavaScript for the admin interface was corrupted.
  • BUGFIX: [WP] Unable to save settings due to a 1 accidentally placed in the wrong place.
  • IMPROVEMENTS: [WP] Admin interface minor improvements


  • NEW: Now there are two parsing engine, one based on regular expressions and one based on DOMDocument.
  • NEW: [WP] Now you can import and export settings to apply the same contents on multiple sites easly.
  • NEW: Now you can write debug informations on file.
  • NEW: [WP] When the plugin’s debug is enabled you will see an alert on every admin page.
  • NEW: New theme floating available.
  • IMPROVEMENTS: [WP] Admin interface improved
  • IMPROVEMENTS: Improved documentation
  • updated translation files
  • updated documentation
  • updated the version number


  • IMPROVEMENTS: Some JavaScript were not detected by the server if formatted in certain formats.
  • BUGFIX: [WP] When W3 Total Cache is enabled and you do not have right permissions on file the message as quite cryptical.


  • NEW: [WP] On tinyMCE (visual editor) you have the EUCookieLaw helpers
  • NEW: Now you can define which is the default file replacement for iframes and scripts.
  • IMPROVEMENT: [WP] Now only administrators can access the settings page
  • BUGFIX: Due to a typos the client side cookies (generated by JavaScript) are always written
  • updated the version number


  • IMPROVEMENT: If not defined the EUCOOKIELAW_BANNER_DISAGREE_BUTTON the disagree button will not be shown on the page.
  • IMPROVEMENT: Removed the session/local storage in favor of technical session cookie for storing the user rejection
  • IMPROVEMENT: Improved the way to detect if the cookie is approved or rejected
  • IMPROVEMENT: Uniformed the way to write the technical cookie __eucookielaw
  • IMPROVEMENT: Improved the way how the banner is removed
  • IMPROVEMENT: Updated missing pieces in documentation.
  • IMPROVEMENT: Optimized behavior when asked reload of contents after consent.
  • BUGFIX: Resolved an anicient related firefox issue
  • BUGFIX: [WP] if the disabled option is set to yes, neither the JavaScript and CSS must be loaded on the page.
  • BUGFIX: Minor bugfixes in JavaScript
  • updated the minor version number
  • updated documentation


  • BUGFIX: when PHP does not have gzdecode the method is implemented on needs.
  • BUGFIX: Internet Explorer and some mobile Browser does not recognize the instance variable as EUCookieLaw object causing a bad banner behavior.
  • BUGFIX: [WP] NextGenGallery has some weird behavior sometimes (skipped to load the locker if it is a NGG URL.
  • IMPROVEMENT: [WP] The plugin now tries to write into wp-config.php only if there is another cache plugin enabled on the site.
  • IMPROVEMENT: EUCookieLaw related PHP Warnings threated as required
  • updated documentation
  • updated the version number


    Most of WordPress sites uses a FTP settings for writing files. Used native file_get_contents and file_put_contents
    to write data into some files for a better user experience.

  • BUGFIX: Changed stable version number in readme


  • NEW: [\WP] Full compliant with any cache plugin (actually successfully tested with WP Super Cache, W3 Total Cache, Zen Cache)
  • NEW: The banner is now visible either with and without javascript enabled.
  • NEW: User consent whenever he clicks on an element of the page (Issue #12)
  • NEW: You can list the allowed cookies before consent (aka Technical Cookies). This solves the issue #15
  • NEW: Now Google Analytics is able to write cookies via JavaScript (if configured) (Issue #15)
  • NEW: [WP] You can enable/disable the banner on frontend (Issue #20)
  • NEW: [WP] You can enable/disable the banner on the login page (Issue #21)
  • NEW: You can set the «reload on scroll» (Issue #26)
  • NEW: [WP] Added the WPML XML Configuration File for a better WPML compatibility.
  • IMPROVEMENT: [WP] Lack of documentation on certain admin fields (Issue #27)
  • IMPROVEMENT: Most of PHP Code was completely refactored from the ground to improve performance and readability.
  • BUGFIX: [WP] NextGenGallery conflict resolved (Issue #31)
  • BUGFIX: [WP] QuickAdsense conflict resolved (Issue #36 and #32 )
  • BUGFIX: [WP] Revolution Slider conflict resolved (Issue #37)
  • BUGFIX: Page URL changes after reload (Issue #38)
  • BUGFIX: Scroll on tablet does not work (Issue #40)
  • BUGFIX: Invalid Calling Object in Internet Explorer 9 and Safari was resolved (Issue #41)
  • updated translation files
  • updated documentation
  • updated the version number


This update introduces several improvements, features and bugfixes. For a detailed information about the new release see
the documentation page and the Milestone 1.5

  • NEW: Now the plugin is able to detect if the user agent and does not block contents if it is search engine
  • NEW: All the external contents are loaded after the user consent without page reloading ( Issues #4 and #10)
  • NEW: The script allows to define the consent duration in days (Issue #7, #17 and #23)
  • NEW: Now is possible to check almost in every HTML element ( Implicitly resolved issue #6)
  • NEW: The script remembers the user rejection.
  • NEW: New JavaScript public method reconsider to revoke the consent (and the rejection) showing the banner again (Issue #7)
  • NEW: [WP] Added shortcode for reconsider button (see documentation for further details) (Issue #7)
  • NEW: [WP] Added shortcode for wrapping contents (see documentation for further details)
  • NEW: Now the consent on scroll is fired at least after 100px scroll (up or down)
  • IMPROVEMENT: [WP] Made compliant with WP Super Cache, W3 Total Cache, Zen Cache (Issue #23)
  • IMPROVEMENT: Javascript has been refactored to improve performance and maintenability
  • IMPROVEMENT: [WP] Admin interface improved
  • IMPROVEMENT: Some CSS improvements (Issue (Issue #8)
  • BUGFIX: Consent on scroll doesn’t work propery
  • BUGFIX: [WP] Custom content path not recognized correctly ( Issue #9)
  • BUGFIX: Typos where script was written as srcript on server script (Issue #16)
  • BUGFIX: Only first occourrence of the same/similar URL is blocked (Issue #19)
  • BUGFIX: Corrected some IE8 weird behavior
  • updated translation files
  • updated documentation
  • updated the version number


  • BUGFIX: fixed the javascript that has wrong characters in the script
  • Fixed errors in documentation


  • NEW: when you specify a domain starting with a dot (eg. all the subdomains are valid (eg. and
  • NEW: Improved the banner loading (loaded before the DOM Event load)
  • NEW: Optional implicit user agree on page scrolling (Issue #4).
  • NEW: Debugging options
  • NEW: You can fix the banner on top or bottom of the page.
  • NEW: The custom CSS (from EUCookieLawCustom) will be loaded in conjunction with the default CSS.
  • BUGFIX: removed the <![CDATA[ ... ]]> envelop on script replacement due to some browser incompatibility.
  • BUGFIX: Custom translations was never read
  • updated translation files
  • updated documentation
  • updated the version number


  • BUGFIX: the default text for disagree button when not given was Disagree instead it should be empty.
  • BUGFIX: whatever is the name of the plugin directory the directory for the customizations (translations and CSS) must be /wp-content/plugins/EUCookieLawCustom/.
  • updated documentation
  • updated the version number


  • Updated the eucookielaw-header.php,
    • NEW: now the disallowed domains trims the spaces on each domain. It means that is allowed to write ; and they will be correctly interpreted as and
  • NEW: If not defined the disagee label text then the button is not shown. Useful for informative non-restrictive cookie policy.
  • BUGFIX: the cookie __eucookielaw setted by javascript is defined at root domain level.
  • updated documentation
  • updated the version number


  • Updated the eucookielaw-header.php,
    • NEW: now the search of url is performed in <script>...</script> tags too.
    • BUGFIX: some translations strings were broken.
  • updated translation files
  • updated documentation
  • updated the version number


This update introduces several improvements, features and bugfixes. For a detailed information about the new release see:
Issue #1

  • updated the eucookielaw-header.php,
    • NEW: now it blocks script tags with data-eucookielaw="block" attribute
    • NEW: now is possible to define a blacklist of domains to block before the user consent the agreement
    • NEW: the blacklist is related to a set of tags (by default the plugin will scan iframe, link and script tags
  • NEW:: managed title tag, blocked domains and tags to scan
  • NEW: if the plugin WP Super Cache is installed then the plugin will clear the cache until the user has not approved the agreeement to ensure to show always the right contents
  • NEW:: if there is a CSS file named eucookielaw.css in the custom directory wp-content/plugins/EUCookieLawCustom/ the it will be appliead in place of the default one.
  • BUGFIX: unescaped post data before saving the admin settings
  • updated the version number
  • updated translation strings
  • updated documentation


  • First release