WP Manifestindependent plugin directory
manifest / unclassified / db-privacy-hub

DB Privacy Hub releasesself-updates

Hub privacy unificato per l'ecosistema plugin DB. Raccoglie i trattamenti dichiarati dai plugin DB (Cookie Manager, Form Builder, SEO Manager…) e genera una Privacy Policy completa (artt. 13-14 GDPR) pronta da pubblicare come pagina WordPress. Importa automaticamente la Cookie Policy dal DB Cookie Manager se installato. Niente servizi esterni, niente tracciamento.

by Davide Bertolino · github.com/dadebertolino/db-privacy-hub · website

0stars
14release downloads
0forks

Install

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

wp plugin install https://github.com/dadebertolino/db-privacy-hub/releases/download/v1.6.0/db-privacy-hub.zip

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

Readme

DB Privacy Hub

Hub privacy unificato per l'ecosistema plugin DB. Raccoglie i trattamenti dichiarati dai plugin DB (Cookie Manager, Form Builder, SEO Manager…) e genera una Privacy Policy completa pronta da pubblicare come pagina WordPress.

Niente servizi esterni, niente registrazioni, niente nag.


🇮🇹 Italiano

A cosa serve

Quando hai più plugin DB attivi sul sito, ognuno tratta dati personali per i propri scopi: il Cookie Manager raccoglie il consenso ai cookie, il Form Builder riceve invii moduli e gestisce DSAR, il SEO Manager configura analytics e tracking, ecc. La normativa privacy (artt. 13-14 GDPR) impone un'unica informativa che descriva tutti questi trattamenti.

Il DB Privacy Hub raccoglie automaticamente le dichiarazioni di ogni plugin DB attivo, vi aggiunge i dati del titolare, le sezioni cookie importate dal Cookie Manager (se installato), un'individuazione automatica dei destinatari dei dati e tutto il boilerplate normativo (diritti dell'interessato, conservazione, reclamo all'autorità di controllo). Poi pubblica il documento come pagina WordPress.

Caratteristiche principali

  • Registro trattamenti unificato — un'unica pagina admin che mostra tutti i trattamenti dichiarati dai plugin DB attivi
  • Generatore Privacy Policy completo — composizione automatica di un documento conforme agli artt. 13-14 GDPR
  • Form titolare — nome, P.IVA, indirizzo, email, PEC, DPO; salvati una volta, riusati ovunque
  • Detection automatica destinatari — riconosce reCAPTCHA configurato, plugin SMTP attivi, webhook host configurati nei form
  • Ponte WooCommerce — con WooCommerce attivo, dichiara automaticamente i trattamenti e-commerce (ordini, fatturazione, account, pagamenti) e rileva i gateway di pagamento abilitati come destinatari
  • Importazione sezioni cookie — se il DB Cookie Manager è installato, le sezioni cookie del documento vengono importate automaticamente (niente duplicazione di logica)
  • Integrazione DSAR — se il DB Form Builder 2.5.0+ è installato, la sezione "Diritti dell'interessato" menziona la procedura DSAR automatica
  • Pubblicazione one-click — crea (o rigenera) una pagina WordPress con titolo e slug configurabili, e la imposta come wp_page_for_privacy_policy core
  • Export .md — scarica l'informativa come file Markdown
  • Auto-update — aggiornamenti distribuiti via GitHub Releases, visibili direttamente nel pannello WordPress

Requisiti

  • WordPress 5.8+
  • PHP 7.4+
  • (Opzionale ma consigliato) DB Cookie Manager 3.1.0+ per integrazione cookie

Installazione

  1. Scarica l'ultimo ZIP dalle Releases
  2. WordPress → Plugin → Aggiungi nuovo → Carica plugin → Carica lo ZIP → Attiva
  3. Vai a Privacy → Genera Privacy Policy, compila i dati del titolare, salva, click su "Crea pagina WordPress". Fatto.

Il plugin si auto-aggiorna da GitHub: gli aggiornamenti compaiono direttamente nel pannello plugin di WordPress.

Filosofia

Lo stesso principio dell'intero ecosistema DB: nessun servizio esterno, nessun tracking, nessuna registrazione, nessun nag. Tutti i dati restano nel database WordPress locale. Il plugin non chiama mai server di terze parti (eccetto GitHub solo per il check aggiornamenti).

Architettura

Filter dbph_processing_register

Il cuore del plugin è un filter pubblico su cui ogni plugin DB dichiara i propri trattamenti:

add_filter( 'dbph_processing_register', function( $register ) {
    $register[] = array(
        'id'             => 'mioplugin_invio_form',
        'label'          => __( 'Invio modulo contatti', 'mioplugin' ),
        'status'         => 'active',
        'purpose'        => __( 'Gestire le richieste di contatto degli utenti.', 'mioplugin' ),
        'legal_basis'    => __( 'Consenso (art. 6.1.a GDPR).', 'mioplugin' ),
        'data_collected' => __( 'Nome, email, oggetto, messaggio.', 'mioplugin' ),
        'retention'      => __( '365 giorni, poi cancellazione automatica.', 'mioplugin' ),
        'transfers'      => __( 'Nessuno.', 'mioplugin' ),
    );
    return $register;
} );

Tutti i campi sono obbligatori. L'Hub non valida né normalizza il contenuto: la responsabilità è del plugin che dichiara.

Compatibilità con il filter legacy

Per compatibilità con installazioni che ancora usano il SEO Manager 1.2.x (filter dbseo_processing_register), l'Hub raccoglie automaticamente entrambi i filter, deduplicando per id. Il filter legacy verrà rimosso in DB Privacy Hub 2.0.0.

Filter dbph_policy_sections

Permette ad altri plugin/temi di rimuovere o riordinare sezioni del documento finale:

add_filter( 'dbph_policy_sections', function( $sections, $context ) {
    // Esempio: rimuovi la sezione cookie se non vuoi importarla.
    unset( $sections['cookie'] );
    return $sections;
}, 10, 2 );

Le chiavi disponibili sono: header, titolare, finalita, trattamenti, cookie, destinatari, diritti, conservazione, modifiche, reclamo, footer.

Filter dbph_policy_destinatari

Permette di aggiungere destinatari custom alla detection automatica:

add_filter( 'dbph_policy_destinatari', function( $dest ) {
    $dest[] = array(
        'name'        => 'Stripe Inc.',
        'description' => __( 'Servizio di pagamento.', 'mio' ),
        'country'     => __( 'Stati Uniti (extra-UE)', 'mio' ),
    );
    return $dest;
} );

FAQ

Posso modificare a mano la pagina dopo che è stata generata? Sì. Le modifiche manuali vengono però sovrascritte se clicchi "Rigenera pagina". Se vuoi modifiche persistenti, usa i filter dbph_policy_sections o intervieni nei trattamenti dichiarati dai singoli plugin.

Funziona senza il DB Cookie Manager? Sì. La sezione "Cookie e tecnologie simili" viene semplicemente omessa. Se installi il Cookie Manager 3.1.0+ in un secondo momento, basta cliccare "Rigenera pagina" e la sezione viene aggiunta.

Sostituisce il consulente privacy? No. Il plugin produce un documento tecnicamente accurato, ma la verifica e l'adattamento al contesto specifico del titolare restano una responsabilità professionale.

Licenza

GPL v2 or later. Vedi LICENSE.

Crediti

Sviluppato da Davide Bertolino. Parte dell'ecosistema plugin DB.

Changelog

1.6.0 — Bridge social e contenuti incorporati (2026)

Tooling e CI

  • GitHub Actions CI — lint di sintassi su PHP 7.4 e 8.3 (matrice), PHPCS con WordPress Coding Standards (phpcs.xml.dist) e verifica PHPCompatibilityWP per il requisito PHP 7.4+
  • Workflow di release — al push di un tag v*: verifica che il tag corrisponda alla versione nel plugin header e nella costante DBPH_VERSION, builda lo ZIP con radice db-privacy-hub/ senza file di sviluppo e lo allega alla GitHub Release — l'asset è quello che l'auto-updater scarica (senza asset l'updater ripiegherebbe sullo zipball, che ha la cartella radice sbagliata)
  • Codebase allineata a WPCS — ~4.700 rilievi risolti tra auto-correzione (phpcbf) e interventi manuali: variabili globali prefissate in uninstall.php, short ternary espliciti, commenti translators mancanti, annotazioni phpcs:ignore motivate per i falsi positivi (sanitizzazione a valle, hook core WP); le esclusioni per scelte progettuali deliberate (tabelle custom, ora locale DSAR, export CSV in streaming) sono documentate nel ruleset
  • composer.json con script lint, phpcs, phpcbf per l'uso locale

Funzionalità

  • Nuovo modulo DBPH_Embed_Bridge — rileva le piattaforme terze i cui contenuti sono incorporati nel sito (YouTube, Vimeo, Facebook, Instagram, TikTok, X, LinkedIn, Spotify, Google Maps) tramite blocchi Gutenberg embed, iframe nei contenuti e plugin noti; i semplici link ai profili sono volutamente esclusi (un link non trasferisce dati)
  • Abilitazione manuale — checkbox nella pagina "Genera Privacy Policy" per dichiarare a mano le piattaforme che la scansione non può vedere (embed del tema, share button, page builder); le piattaforme rilevate automaticamente sono contrassegnate e dichiarate comunque
  • Voci di registro automatiche — "Contenuti incorporati da piattaforme terze" (base: consenso art. 6.1.a, con rinvio al banner cookie) e "Remarketing e misurazione pubblicitaria" se è attivo un plugin pixel noto (PixelYourSite, Meta pixel, Facebook for WooCommerce, TikTok)
  • Piattaforme come destinatari — descrittori precompilati con titolarità, paese e garanzie extra-UE (SCC/DPF), integrati nel merge destinatari della 1.5.0
  • Contitolarità pagine social — checkbox che aggiunge alla policy il paragrafo sui dati Insights delle pagine social (art. 26 GDPR, CGUE C-210/16)
  • La scansione dei contenuti è cachata (transient 12h, invalidato al salvataggio); il bridge è disattivabile con add_filter( 'dbph_embed_bridge_enabled', '__return_false' ); catalogo piattaforme estendibile via dbph_embed_platforms
  • Fuori scope (dichiarato): social login e share button lato tema — per questi ultimi esiste appunto l'abilitazione manuale

1.5.0 — Modelli responsabili + merge destinatari (2026)

  • Merge delle liste nella sezione "Destinatari" — la Privacy Policy ora mostra SEMPRE due blocchi distinti: "Responsabili del trattamento (art. 28 GDPR)" con le dichiarazioni esplicite, e "Altri destinatari" con autonomi titolari e servizi rilevati automaticamente (gateway di pagamento, SMTP, reCAPTCHA, webhook). Fino alla 1.4.0 le dichiarazioni esplicite nascondevano la detection automatica: su un e-commerce con responsabili dichiarati i gateway sparivano dal documento
  • Dedup per nome — se un soggetto rilevato è già dichiarato esplicitamente, prevale la dichiarazione (il fatto giuridico) e la voce rilevata viene omessa
  • Modelli rapidi di responsabili — la pagina "Responsabili esterni" include una checklist di categorie tipiche (commercialista, webmaster/agenzia, hosting, fatturazione elettronica, email transazionale, backup) con voci precompilate a un click; segnaposto da sostituire con la ragione sociale reale, avviso in pagina finché restano segnaposto non sostituiti, filter dbph_responsabili_templates per estendere l'elenco
  • Fix notices — i messaggi di conferma delle azioni DSAR manuali (registrata/aggiornata/eliminata) erano usati nei redirect ma mancavano dalla mappa e non venivano mai mostrati

1.4.0 — Ponte privacy WooCommerce (2026)

  • Nuovo modulo DBPH_Woo_Bridge — se WooCommerce è attivo, il plugin dichiara automaticamente sul registro i trattamenti e-commerce standard: gestione ordini e spedizione (base contrattuale), fatturazione e obblighi fiscali (obbligo di legge, 10 anni), account cliente (solo se la registrazione è abilitata), pagamenti online (solo se esistono gateway online abilitati) e telemetria WooCommerce verso Automattic (solo se l'opzione di tracking è attiva)
  • Detection gateway di pagamento — i gateway online abilitati vengono aggiunti ai destinatari della Privacy Policy come autonomi titolari, con descrittori precompilati per Stripe, PayPal, Klarna, Nexi/XPay, Braintree, Mollie, Amazon Pay e Satispay (paese e garanzie di trasferimento incluse) e descrittore generico per i gateway non riconosciuti; i metodi offline (contrassegno, bonifico, assegno) sono esclusi
  • Sezione diritti integrata — la Privacy Policy generata include il chiarimento sul limite alla cancellazione dei dati fiscali/contabili (art. 17.3.b GDPR) con spiegazione dell'anonimizzazione degli ordini
  • Il ponte è disattivabile con add_filter( 'dbph_woo_bridge_enabled', '__return_false' )
  • Fuori scope (da dichiarare manualmente): corrieri (Responsabili esterni) e consensi marketing delle estensioni

1.3.1 — Bugfix e hardening (2026)

  • Fix timezone modulo DSAR — cron di scadenza e contatori "in scadenza / scadute" ora usano l'ora locale del sito, coerentemente con i timestamp salvati (prima erano sfasati dell'offset del fuso orario)
  • Fix hook export — il completamento dell'export dati personali viene registrato usando l'ID richiesta passato dall'hook core (funziona anche per export via WP-CLI); rimossa l'euristica inattendibile su items_removed nel completamento erase
  • Validazione DSAR manuale — datetime non parsabili non producono più date epoch 1970; lo status è validato contro la whitelist; email normalizzata se valida
  • Fix contatore per plugin — il raggruppamento delle voci del registro trattamenti riconosce correttamente prefissi di lunghezza arbitraria (es. dbseo_*)
  • Fix numerazione Privacy Policy — se il Cookie Manager è attivo ma non produce sezioni cookie, indice e numerazione delle sezioni restano coerenti
  • Registro consensi — il limite di righe viene propagato alle fonti (args['limit']) per evitare merge in memoria illimitati
  • Nuovo: conservazione dati alla disinstallazione — opzione "Conserva i dati alla disinstallazione" (default OFF) che preserva log DSAR, archivio policy e impostazioni per finalità di accountability (art. 5.2 GDPR)

Read the full README on GitHub →

Releases

TagPublishedAssetDownloads
v1.6.0 Jul 18, 2026 db-privacy-hub.zip 6
v1.3.0 May 3, 2026 db-privacy-hub.zip 3
v1.1.2 May 2, 2026 db-privacy-hub.zip 5