WP Manifestindependent plugin directory
manifest / privacy / genero-cmp

Genero CMP WP Registry grade A. No security issues foundWP RegistryNo security issues foundOpen the reportA #5 in Privacy & Compliance

CMP Plugin

★ 6stars
21release downloads
26kcomposer installs
v2.2.3latest · 2mo ago

Install

Download genero-cmp.zip From the v2.2.3 release on GitHub, Aug 3, 2026

Upload it under Plugins → Add New Plugin → Upload Plugin, then activate.

Install straight from GitHub with WP-CLI:

wp plugin install https://github.com/generoi/genero-cmp/releases/download/v2.2.3/genero-cmp.zip

On Packagist as generoi/genero-cmp:

composer require generoi/genero-cmp
No built-in updater. New versions won't appear under Dashboard → Updates. Install new releases yourself, or let Git Updater track the repository.

CMP Plugin

Features

Blocks in the block editor are extended with an option to either hide/show based on one or multiple consents.

Note this is likely broken in some cases at the moment.

PHP API

Define necessary cookies

When withdrawing consent, all non-necessary cookies are removed. You can edit this set of cookies.

add_filter('gds_cmp_necessary_cookies', function (array $cookies) {
    $cookies[] = CartServiceProvider::CART_COUNT_COOKIE;
    $cookies[] = CartServiceProvider::LOGGED_IN_COOKIE;
    return $cookies;
});

Alter consent categories

You can add or remove custom consent categories.

add_filter('gds_cmp_consents', function (array $consents) {
    $consents[] = new \GeneroWP\GeneroCmp\Models\Consent(
        id: 'custom-consent',
        label: __('Custom Consent'),
        description: __('Custom consent'),
        wpConsentApiCategory: 'marketing',
        gtmConsentModes: ['ad_storage', 'ad_user_data', 'ad_personalization'],
    );
    return $consents;
});

Block additional iframe embeds

By default iframes in the_content referencing youtube.com get blocked using <gds-cmp-consent consent="marketing">. You can extend this to other iframe matches or all of them.

add_filter('gds_cmp_embed_consents', function (array $consents, string $tag) {
  // Block all iframes by default
  if (! $consents) {
    $consents[] = 'preferences';
  }
  return $consents;
}, 10, 2);

JavaScript API

/**
 * @param {HTMLElement} modal Reference to the <gds-cmp-modal-dialog> element
 * @returns {void}
 */
window.gdsCmp.modal

/**
 * Show the consent dialog
 *
 * @returns {void}
 */
window.gdsCmp.show()

/**
 * Hide the consent dialog
 *
 * @returns {void}
 */
window.gdsCmp.hide()

/**
 * Withdraw current consent.
 *
 * @returns {void}
 */
window.gdsCmp.withdraw()

/**
 * Return if user has granted the passed consents.
 *
 * @param {...Consent} consents Consent name eg. 'necessary`, `preferences`, `marketing`, `statistics`.
 * @returns {boolean} if user has granted all the consents
 */
window.gdsCmp.hasConsent(...consents)

/**
 * Evaluate and initialize all script tags using data-cmp-consent="" string
 *
 * @param {Node} context
 * @returns void
 */
window.gdsCmp.evaluateTags(context = document)

Events

window.addEventListener('gds-cmp.consent', () => {
  if (window.gdsCmp.hasConsent('marketing')) {
    // ....
  }
});

window.addEventListener('gds-cmp.consent.marketing', () => {
  // ...
});

Utilities

Hide content using CSS

<div data-gds-cmp-consent-optin="necessary marketing">
  Show when consent is given for necessary and marketing cookies.
</div>
<div data-gds-cmp-consent-optout="necessary marketing">
  Hide when consent is given for necessary and marketing cookies.
</div>

Control cookie consent dialog

Add .js-gds-cmp-show class to any element (needs to be in DOM before DOMDocumentReady).

<a class="js-gds-cmp-show">Change consent</a>

Add [data-gds-cmp-trigger="show|hide|withdraw"] selector to any element (delegates as a document click listener)

<button data-gds-cmp-trigger="show">Change consent</button>
  • Run manually with window.gdsCmp.show()
  • Run show() on the <gds-cmp-modal-dialog> element

Block elements from being loaded using [data-gds-cmp-consent] attribute

You can add data-gds-cmp-consent="marketing preferences" to an element and once consent has been given, the element will evaluate.

Supported elements are `

Releases

13 releases. Each count is every asset in that release; expand a row for the breakdown.

Tag
Published
Assets
Downloads
v2.2.3 latest
Aug 3, 2026 2mo ago
genero-cmp.zip
2
Oct 31, 2025 11mo ago
genero-cmp.zip
9
Sep 22, 2025 1 year ago
genero-cmp.zip
1
Jul 24, 2025 1 year ago
genero-cmp.zip
0
Apr 17, 2025 1 year ago
genero-cmp.zip
1
Oct 8, 2024 2 years ago
genero-cmp.zip
1
Aug 25, 2024 2 years ago
genero-cmp.zip
1
Aug 12, 2024 2 years ago
genero-cmp.zip
1
Jul 31, 2024 2 years ago
genero-cmp.zip
1
Jul 26, 2024 2 years ago
genero-cmp.zip
1
Jul 24, 2024 2 years ago
genero-cmp.zip
1
Jul 24, 2024 2 years ago
genero-cmp.zip
1
Jul 24, 2024 2 years ago
genero-cmp.zip
1
A grade

Security

Genero CMP 2.1.6.1 · audited by WP Registry

No security issues found.

Audited release
2.1.6.1
Findings
none
Worst severity
—
Content hash
d6237ce85c51c8e7fd407796…

WP Registry hashes the installable build and reports on that exact bytes-for-bytes copy. Embargoed findings are withheld until they are disclosed, so a clean verdict means nothing public is outstanding. WP Manifest does not audit code itself.