WP Manifestindependent plugin directory
manifest / privacy / cookies-with-ease

Cookies with Ease

Free, self-hosted GDPR cookie consent manager for WordPress, built on the Klaro! JS library.

by Steinseifers Kommunikationswerkstatt · github.com/steinseifers/cookies-with-ease

★ 0stars
0forks

Install

No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:

wp plugin install https://github.com/steinseifers/cookies-with-ease/archive/refs/heads/main.zip

A free, open-source, self-hosted cookie consent manager for WordPress. No external consent cloud, no tracking of your visitors by a third-party vendor — everything runs on your own WordPress installation.

Cookies with Ease is a free & open-source tool that provides an intuitive, user-friendly and compliant way to manage consent on your website. It is easy to use and configure, lightweight, and compatible with all modern browsers — simple, unobtrusive, and optimized for mobile as well as desktop.

Cookies with Ease can manage both inline and external scripts as well as static tracking elements like images or stylesheet links.

This project is a security-hardened, modernized fork of the abandoned Klaro Consent Manager plugin (v1.1.7). See Credits below.

Is this the right tool for you?

Cookies with Ease is not an automatic, scan-your-whole-site-and-block-everything solution like Complianz, Cookiebot, or CookieYes. It does not detect third-party scripts on its own and does not ship built-in integrations for specific plugins (Google Analytics, ad networks, page builders, …).

Instead, it gives you the building blocks (a lightweight, self-hosted consent banner plus the type="text/plain" mechanism described below) and expects you to configure it: for every script, embed, or tracking pixel you want to gate behind consent, you manually create an Application in the admin and rewrite that script's markup to use type="text/plain". A plugin or embed only becomes "compatible" if its output can be adjusted this way — there is no automatic compatibility layer with other plugins.

If you want a fully automatic, hands-off compliance suite, look at Complianz or a similar service instead. If you're comfortable with a bit of manual, one-time setup per script in exchange for a small, self-hosted plugin with no external dependencies, Cookies with Ease is for you.

Features

  • 100% GDPR compliant
  • Customizable cookie message using .po file (multi-language support)
  • Redirects users to a modal for more cookie information and to toggle individual scripts
  • Custom link to your Privacy Policy page
  • Option to refuse deletion of functional cookies
  • Option to review and edit user consent
  • Option to reset the user consent
  • Style the consent banner with your own CSS (Klaro exposes CSS custom properties for theming)
  • Optimized for mobile as well as desktop browsers
  • Can manage: inline and external scripts, images, stylesheets, links
  • Allow users to have control of what scripts are loaded
  • Shortcode to review and reset consent from the privacy policy page or any post/page
  • Ships with draft Application templates for common services (Google Analytics, Google Tag Manager, Facebook Pixel, YouTube, Google Maps) so you don't have to start from a blank form — created as drafts on activation, reviewed and published by you, never enabled automatically. For Google Analytics, Google Tag Manager, and Facebook Pixel, the draft already contains the ready-to-use type="text/plain" code with the standard integration pattern — you only need to drop in your own ID

Installation

  1. Download or clone this repository into wp-content/plugins/cookies-with-ease/, then activate it like any other plugin.

  2. Go to Cookies with Ease → Settings and change the settings to suit your needs.

  3. Go to Cookies with Ease → Applications — you'll find a handful of draft entries for common services already there (Google Analytics, Google Tag Manager, Facebook Pixel, YouTube, Google Maps). Open the ones you actually use, review the purpose and settings, and publish them; delete the ones you don't need. For anything else, create a new Application, enter a name and description, set the purpose (e.g. "Analytics"), and publish.

  4. Scroll to the bottom of the newly created Application and copy the generated code. It looks something like this:

    <script type="text/plain" data-type="application/javascript" data-name="google-analytics">
    // Your Google Analytics code, all except the script tags, which we replace with this one…
    </script>

    Leave your external script tag as-is and replace only the inline script with the snippet above, so you end up with something like:

    <script async src="https://www.googletagmanager.com/gtag/js?id=UA-XXXXXXXX-X"></script>
    <script type="text/plain" data-type="application/javascript" data-name="google-analytics">
      window.dataLayer = window.dataLayer || [];
      function gtag(){dataLayer.push(arguments);}
      gtag('js', new Date());
      gtag('config', 'UA-XXXXXXXX-X');
    </script>
  5. Optionally add [cookieswithease type="review"] or [cookieswithease type="reset"] to your privacy policy page (or any other page) so visitors can review or reset their consent later.

How it works

Cookies with Ease is built on top of Klaro!, the well-tested, BSD-3-Clause-licensed consent management JavaScript library. The plugin provides the WordPress-native admin UI (settings, Applications as posts, metaboxes) around it and generates the Klaro configuration for your site automatically.

Each Application you create becomes one entry in the consent banner, grouped by purpose, so visitors can give or withhold consent per service rather than an all-or-nothing choice.

There is no server-side output buffering or script rewriting involved — the blocking happens entirely in the browser, using a standard HTML behavior:

  1. You mark up the script you want to gate with type="text/plain" instead of its real type (e.g. `). Browsers never execute a