WP Manifestindependent plugin directory
manifest / unclassified / db-cookie-manager

DB Cookie Manager releasesself-updates

A totally free cookie manager plugin for Wordpress

by Davide Bertolino · github.com/dadebertolino/db-cookie-manager · website

0stars
52release downloads
0forks

Install

The author publishes release zips, so WP-CLI can install straight from GitHub:

wp plugin install https://github.com/dadebertolino/db-cookie-manager/releases/download/v3.7.0/db-cookie-manager.zip

Ships its own WordPress updater (built-in updater), so new versions show up under Dashboard → Updates.

Readme

DB Cookie Manager

🇮🇹 Italiano | 🇬🇧 English


🇮🇹 Italiano

Plugin WordPress per la gestione GDPR-compliant dei cookie, con banner multilingua, scanner automatico, registro consensi, generatore di Cookie Policy e integrazione nativa con la WP Consent API.

Sviluppato da Davide Bertolino per uso personale e professionale, rilasciato come open-source (GPL v2+).

Integrazione con DB SEO Manager 1.2.0+: se entrambi i plugin sono installati, la dashboard "Stato GDPR" del SEO Manager riconosce il Cookie Manager (bonus +5 al punteggio), il registro privacy mostra automaticamente i tre trattamenti del Cookie Manager con il badge "Plugin esterno", e l'audit homepage arricchisce ogni host noto con i cookie rilevati dallo scanner. Nessuna configurazione richiesta: l'integrazione è automatica e bidirezionale.


Caratteristiche principali

  • Banner cookie multilingua (Italiano, English, Français, Deutsch, Español, Português) con auto-detect dalla lingua del browser
  • 5 categorie standard WP Consent API: functional, preferences, statistics, statistics-anonymous, marketing
  • Blocco preventivo degli script di tracking (Google Analytics, Meta Pixel, GTM, TikTok, ecc.) e degli iframe (YouTube, Vimeo, Maps, Spotify, ecc.)
  • Scanner automatico che visita le pagine principali, parsa i Set-Cookie e rileva firme di servizi terzi — 64 cookie noti pre-classificati
  • Cookie Policy generator conforme alle Linee Guida del Garante 10 giugno 2021 (rif. art. 122 D.Lgs. 196/2003 + GDPR)
  • Registro consensi GDPR-friendly con IP hashato (irreversibile) e user-agent aggregato — export CSV e JSON con filtri
  • API JavaScript pubblica window.DBCM per integrazioni custom
  • Integrazione WP Consent API: wp_has_consent('statistics') risponde correttamente in base al consenso del visitatore
  • Segnali browser opzionali: rispetta Do Not Track (DNT) e Global Privacy Control (GPC)
  • Geo-targeting opzionale: mostra il banner solo a visitatori UE/EEA/UK
  • Google Consent Mode v2 (opt-in): comunica il consenso ai tag Google con default negato nel <head> e update al consenso; mapping personalizzabile via dbcm_gcm_mapping
  • Localizzazione Google Fonts (opt-in): rimuove i riferimenti remoti a Google Fonts così l'IP dell'utente non viene trasmesso a Google
  • Cancellazione reattiva dei cookie: rimuove dal browser i cookie delle categorie non concesse, rendendo effettiva la revoca del consenso
  • Placeholder click-to-load accessibile per gli embed bloccati (consenso granulare per singolo contenuto)
  • Firme personalizzate: aggiunta manuale di servizi/cookie con import/export JSON
  • Report differenziale scanner: evidenzia i cookie nuovi o rimossi tra due scansioni
  • Shortcode [dbcm_preferences] per il pulsante "Modifica preferenze"
  • Auto-aggiornamento da GitHub via DB GitHub Updater
  • Design system condiviso con gli altri plugin DB (db-admin-ui.css)
  • Disinstallazione pulita via uninstall.php

Requisiti

Componente Versione minima
WordPress 6.0+
PHP 7.4+
WP Consent API (opzionale) — per integrazione automatica con altri plugin compatibili

Installazione

  1. Scarica l'ultima release ZIP da GitHub Releases
  2. WordPress admin → Plugin → Aggiungi nuovo → Carica plugin → seleziona lo ZIP → Installa oraAttiva
  3. Vai a Cookie Manager nel menu sidebar
  4. Configura in ordine: Banner & aspettoScannerCookie PolicyAvanzate

Gli aggiornamenti successivi arrivano automaticamente via GitHub Updater.


Configurazione consigliata

Per la maggior parte dei siti italiani:

  1. Banner: layout "Riquadro flottante", posizione "In basso a destra", tema "Auto"
  2. Default categorie: tutte disattivate (richiesto dal GDPR)
  3. Durata consenso: 180 giorni (raccomandazione del Garante)
  4. Scanner: lancia almeno una scansione, poi rivedi i cookie marketing non noti
  5. Cookie Policy: crea la pagina automaticamente, poi compila [NOME COMPLETO / RAGIONE SOCIALE] e [INDIRIZZO]
  6. Avanzate: DNT/GPC off per consensi espliciti, on per massima privacy by default

API JavaScript

// Verifica consenso
if (window.DBCM.hasConsent('statistics')) { loadGoogleAnalytics(); }

// Reagisci ai cambi
window.DBCM.onConsent(function(consent, type) {
    console.log('Type:', type);       // 'accept_all' | 'reject_all' | 'custom'
    console.log('Marketing:', consent.marketing);
});

// Apri il modal preferenze
window.DBCM.openPreferences();

// Imposta programmaticamente
window.DBCM.setConsent('marketing', true);

// Mappa completa (null se nessun consenso ancora dato)
var consent = window.DBCM.getConsent();

// Lista canonica delle 5 categorie
console.log(window.DBCM.categories);

Evento DOM alternativo:

document.addEventListener('dbcm:consent', function(ev) {
    var consent = ev.detail.consent;
    var type    = ev.detail.type;
});

Hooks e filtri PHP

Banner

Hook Tipo Note
dbcm_should_render_banner filter Default true — sopprimi il banner su pagine specifiche
dbcm_banner_translations filter Aggiungi/sovrascrivi traduzioni
dbcm_visitor_country_code filter Fornisci il codice paese ISO-3166 alpha-2
dbcm_eu_country_codes filter Personalizza la lista paesi UE/EEA per il geo-targeting

Consent

Hook Tipo Note
dbcm_consent_set action Fired ad ogni cambio consenso — args: $type, $consent
dbcm_consent_propagated action Fired dopo la propagazione a wp_set_consent()
dbcm_consent_type filter Default 'optin' — sovrascrivi il consent type WP API

Blocker

Hook Tipo Note
dbcm_blocker_patterns filter Aggiungi/rimuovi pattern di blocco
dbcm_blocker_placeholder_text filter Testo del placeholder iframe (multilingua)
dbcm_blocker_placeholder_btn_label filter Label del pulsante del placeholder

Scanner

Hook Tipo Note
dbcm_known_cookies filter Aggiungi cookie custom al database statico
dbcm_scan_urls filter Personalizza le URL scansionate
dbcm_scanner_html_detections filter Aggiungi firme HTML di servizi terzi

Cookie Policy

Hook Tipo Note
dbcm_policy_sections filter Riordina/rimuovi sezioni
dbcm_policy_html filter Modifica l'HTML finale
dbcm_policy_section_* filter Modifica singole sezioni (header, definitions, cookies, external, browser, ecc.)

Consent Log

Hook Tipo Note
dbcm_trust_proxy_headers filter Default false — fidati di X-Forwarded-For e simili per l'IP

API server-side per altri plugin

DBCM_Consent_API::has_consent($category) (dalla 3.0.0)

Helper unificato per leggere il consenso. Strategia a 3 livelli: wp_has_consent() se WP Consent API installata, altrimenti cookie diretto, altrimenti false.

DBCM_Scanner::get_cookies_by_provider_keyword($keyword, $limit = 50) (dalla 3.0.2)

Ricerca i cookie scansionati il cui campo provider contiene la keyword (LIKE substring, case-insensitive). Usato da DB SEO Manager 1.2.0+.

if (class_exists('DBCM_Scanner')) {
    $cookies = DBCM_Scanner::get_cookies_by_provider_keyword('Google Analytics');
    foreach ($cookies as $c) {
        echo $c->cookie_name . ' (' . $c->category . ')';
    }
}

Esempi pratici

Caricare Google Analytics solo dopo consenso statistics:

add_action('wp_footer', function() {
    if (function_exists('wp_has_consent') && wp_has_consent('statistics')) { ?>
        <script async src="https://www.googletagmanager.com/gtag/js?id=G-XXXXX"></script>
        <script>
            window.dataLayer = window.dataLayer || [];
            function gtag(){dataLayer.push(arguments);}
            gtag('js', new Date());
            gtag('config', 'G-XXXXX');
        </script>
    <?php }
});

Sopprimere il banner su una landing page:

add_filter('dbcm_should_render_banner', function($render) {
    if (is_page('landing-newsletter')) return false;
    return $render;
});

Aggiungere un cookie custom allo scanner:

add_filter('dbcm_known_cookies', function($cookies) {
    $cookies['my_app_session'] = [
        'category'    => 'functional',
        'description' => 'Sessione applicativa interna.',
        'duration'    => 'Sessione',
        'provider'    => 'My App',
    ];
    return $cookies;
});

Link "Modifica preferenze" nel footer:

echo do_shortcode('[dbcm_preferences label="Cookie" style="link"]');

FAQ

Il plugin è davvero conforme al GDPR? Fornisce gli strumenti tecnici per la conformità. La conformità completa dipende dalla configurazione e dalle scelte editoriali. Una revisione da DPO o avvocato resta necessaria per rassicurazioni legali.

Posso usarlo con altri consent manager? No — solo uno alla volta. Disattiva l'altro prima.

Funziona in multisite? Sì. Ogni sito ha le proprie option e il proprio log. La disinstallazione è multisite-aware.

Il blocco preventivo rompe il mio sito? Solo se il tema dipende esattamente da uno script di tracking bloccato (raro). Se hai problemi, disabilita "Blocco preventivo" nella pagina Scanner.

Come gestisce IPv6? Hashing SHA256 dell'IP completo (v4 o v6) + salt site-specifico. Irreversibile in pratica.

Posso esportare il log per richieste GDPR? Sì — Registro consensi → Scarica CSV o Scarica JSON, con filtri per tipo e data.


Privacy

Il plugin non comunica con server esterni. Niente telemetria, niente phone-home. L'unica connessione esterna è GitHub Updater per gli aggiornamenti del plugin.

Cookie scritti dal plugin:

Cookie Categoria Durata Scopo
dbcm_consent functional 365 giorni (configurabile) Memorizza la scelta dell'utente

Changelog

3.7.0 — Modulo Meta Pixel nativo (2026)

Il plugin che possiede il consenso possiede anche il pixel: nuovo modulo opt-in (Avanzate → Meta Pixel) che emette lo snippet Meta come gate JS, quindi il caricamento di fbevents.js è vincolato per costruzione alla categoria Marketing (Art. 6.1.a) — nessuna race tra CMP e tag di terzi.

  • Fire senza reload: check iniziale su window.DBCM.hasConsent('marketing') (version-aware: un consenso con versione obsoleta non concede) + listener su dbcm:consent. Alla revoca invia fbq('consent','revoke') a runtime (Art. 7.3); la rimozione di _fbp è coperta dalla cancellazione reattiva esistente.
  • Anti auto-blocco: il gate contiene le stringhe che il blocker matcha sul contenuto inline (connect.facebook.net, fbevents.js) — nuovo skip esplicito data-dbcm-own nel blocker, con test di contratto: il gate passa, un Meta Pixel di terzi (es. Meta for WooCommerce) resta bloccato.
  • Trasparenza automatica: quando attivo, lo slug meta-pixel è registrato nei servizi dichiarati (idratato dalla firma: fonte unica di verità) e il trattamento in contitolarità con Meta (Art. 26, DPF) è dichiarato a DB Privacy Hub via dbph_processing_register. Alla firma meta-pixel si aggiunge il cookie _fbc (click ID).
  • Handoff CAPI (opt-in): PageView inviato con eventID condiviso esposto in window.DBCM_META_LAST_EVENT_ID, per la deduplicazione con la futura Conversions API server-side (DB Meta Events).
  • Pixel ID validato server-side (solo 15–16 cifre, ri-sanitizzato anche in lettura). Test: +24 unit (modulo 20, contratto blocker 4), validati con mutation testing.

Read the full README on GitHub →

Releases

TagPublishedAssetDownloads
v3.7.0 Jul 19, 2026 db-cookie-manager.zip 9
v3.6.1 Jul 16, 2026 db-cookie-manager.zip 2
v3.6.0 Jul 16, 2026 db-cookie-manager.zip 2
v3.5.1 Jul 16, 2026 db-cookie-manager.zip 0
v3.4.3 Jul 15, 2026 db-cookie-manager.zip 1
v3.4.2 Jul 15, 2026 db-cookie-manager.zip 0
v3.4.1 Jul 15, 2026 db-cookie-manager.zip 6
v3.4.0 Jul 14, 2026 db-cookie-manager.zip 1
v3.3.1 Jul 14, 2026 db-cookie-manager.zip 0
v3.3.0 Jul 14, 2026 db-cookie-manager.zip 2
v3.3.0-beta.1 Jul 14, 2026 db-cookie-manager.zip 0
v3.2.0 May 3, 2026 db-cookie-manager.zip 5
v3.1.0 May 2, 2026 db-cookie-manager.zip 3
v3.0.2 May 2, 2026 db-cookie-manager.zip 2
v2.0.1 Apr 6, 2026 db-cookie-manager.zip 1
v2.0.0 Apr 6, 2026 db-cookie-manager.zip 18