1. Install and activate
In WordPress go to Plugins → Add new → Upload plugin, choose the plugin zip and activate it. The «Cookie Consent» item appears in the menu.
2. Configure the banner
Choose the position, the colours, how long the choice lasts and how preferences are recalled: floating icon or footer link. Texts left empty use the default ones, in the site language or, on multilingual sites, in the language of each page. If the site only uses technical cookies, turn the banner off.
3. Connect the services
In the Integrations tab you enter the Google Analytics 4, Google Tag Manager or Meta Pixel ID: each service starts only when the visitor allows its category. For the other services you paste the code into the custom scripts.
4. Scan the cookies
Visit the site accepting all cookies, then start the scan from the Cookie tab. Check the table: classify the unrecognised cookies and manually add the missing ones.
5. Create the Cookie Policy
In the Owner tab you enter the owner's details, then from the Cookie Policy tab you create the page: the plugin links it to the banner and keeps it up to date. When cookies change significantly it proposes a new version, and after your confirmation the banner asks everyone again.
6. Create the Privacy Policy
In the Privacy Policy tab you answer the questions, one step at a time, and create the page. The text follows the answers: when the site changes, you update the answers and the page updates with them.
7. Keep or reuse the configuration
From the Tools tab you download the export file: it is a backup copy, and on another site with the plugin you import it from the same tab. After the import run a scan, to compare the cookie list with the new site.
Shortcode: link to preferences, policies and cookie tables
[custcc_preferences label="Manage cookies"]
[custcc_cookie_policy]
[custcc_privacy_policy]
[custcc_cookie_table category="statistics"]
Custom link, in a menu or in a button
<a href="#custcc-preferences">Cookie preferences</a>
HTML: keeping a script blocked until consent
<script type="text/plain" data-custcc-category="statistics"
data-src="https://example.com/tracker.js"></script>
PHP: blocking a script enqueued by WordPress
add_filter( 'custcc_blocked_handles', function ( $handles ) {
$handles['some-tracker'] = 'marketing';
return $handles;
} );
JavaScript: reacting to the visitor's choice
document.addEventListener( 'custcc:change', function ( event ) {
// event.detail.categories: [ 'necessary', 'statistics' ]
} );
window.custcc.has( 'statistics' ); // true / false
window.custcc.open(); // reopens the panel
Other filters: custcc_banner_active, custcc_client_ip (for sites behind a proxy), custcc_rate_limit, custcc_catalog and custcc_catalog_providers (to extend the catalogue), custcc_scan_urls, custcc_policy_width and custcc_policy_own_title (frame and title of the policy pages), custcc_page_id and custcc_text (for multilingual systems that do not respond to wpml_object_id or do not translate the options).