Skip to content

DB Event Manager

v1.3.0
Open Source — GPL v2

DB Event Manager

Gestione eventi con iscrizione, QR code personale, check-in da telefono e survey post-evento. Approvazione manuale con assegnazione orario, pagina partecipanti pubblica, prova del consenso GDPR per ogni iscrizione. Niente piattaforme esterne, niente account, niente costi ricorrenti.

v1.3.0 WordPress 5.8+ PHP 7.4+ GDPR · art. 7.1 artt. 15-17 DSAR nativi WP WCAG 2.1 AA

Versione 1.3.0 · Davide Bertolino · Licenza GPL v2

L’idea di fondo

Gestire eventi con iscrizione online non dovrebbe richiedere un account Eventbrite, un abbonamento mensile a un SaaS, o un plugin freemium che ti mostra la lista partecipanti solo nella versione Pro. Serve creare un evento, raccogliere iscrizioni, generare un QR code per ogni partecipante, fare check-in all’ingresso con lo scanner del telefono, e poi mandare un survey per capire com’è andata.

DB Event Manager fa esattamente questo, tutto dentro WordPress. Il form iscrizione ha campi personalizzabili drag & drop, la checkbox GDPR con link alla privacy policy, l’approvazione manuale con possibilità di assegnare un orario a ogni partecipante. Il QR code viene generato con una libreria PHP pura a namespace isolato che funziona su qualsiasi hosting. Il check-in funziona dal telefono, senza app, senza login WordPress.

Dalla 1.3.0, ogni iscrizione con checkbox GDPR attiva salva la prova esplicita del consenso ricevuto: testo letto, timestamp, URL informativa, versione della Privacy Policy in vigore. Le DSAR di WordPress sono integrate nativamente con doppio canale (Privacy Hub + core WP).

Principi

Self-contained

QR code generato in PHP puro. Scanner QR con html5-qrcode inclusa localmente. Nessun CDN per funzionalità core. Nessuna dipendenza esterna obbligatoria.

Consenso documentato

Checkbox GDPR configurabile per evento con testo, link privacy, salvataggio prova del consenso. Linking alla versione esatta della Privacy Policy tramite Privacy Hub.

DSAR ready

Export e cancellazione dati personali integrati con WordPress core. Doppio canale: filter Hub primario, fallback core WP. La cancellazione rimuove anche i file QR code.

Mobile-first check-in

Pagina pubblica check-in ottimizzata per telefono. PIN di protezione, scanner QR integrato, feedback visivo grande e chiaro. Niente app, niente login.

Gestione delegabile

Pagina pubblica partecipanti con PIN: la referente dell’evento gestisce iscrizioni, approva, assegna orari e fa check-in senza accesso all’admin WordPress.

Niente phone-home

L’unica connessione esterna è il GitHub Updater per gli aggiornamenti automatici. Il plugin non contatta server esterni, non raccoglie telemetria, non ha account.

Caratteristiche principali

Eventi

Gestione completa

CPT con nome, descrizione Gutenberg, data inizio/fine, luogo, posti disponibili. Categorie gerarchiche, stati automatici (bozza, in programma, concluso). Chiusura automatica iscrizioni a posti esauriti o deadline.

Iscrizione

Form personalizzabile

Campi drag & drop (text, email, tel, textarea, select, radio, checkbox, number, date, url). Honeypot anti-spam, rate limiting, barra progresso posti. Due modalità: form integrato o DB Form Builder.

Approvazione

Con assegnazione orario

Modalità manuale: l’approvatore riceve email con bottoni Approva/Rifiuta. Se attiva l’assegnazione orario, cliccando Approva si apre un form con campo orario. Link protetti con HMAC, non indovinabili.

QR Code

PHP puro, namespace isolato

QR code generato con phpqrcode, classi prefissate DBEM_ per evitare conflitti con qualsiasi altro plugin. Allegato all’email di conferma come PNG. Leggibile da qualsiasi scanner.

Check-in

Scanner QR da telefono

Pagina pubblica protetta da PIN. Scanner fotocamera integrato (html5-qrcode). Ricerca manuale per nome/email. Feedback visivo immediato con icona, testo e colore. Riavvio automatico scanner.

Partecipanti

Pagina pubblica con azioni

Lista iscritti con filtri per stato, contatore presenti/iscritti. Azioni: approva, rifiuta, check-in, reinvia email, modifica orario. Iscrizione manuale. Export CSV. Protetta da PIN.

Email

Template con placeholder

Conferma, pending, approvazione, rifiuto, promemoria, survey, annullamento. Placeholder: {nome}, {email}, {evento}, {data_evento}, {luogo}, {orario}, {qrcode_url}.

Survey

Post-evento con link univoco

Campi configurabili per evento. Link univoco per partecipante, niente login. Invio manuale o automatico via cron. Riepilogo risposte con conteggi. Export CSV.

Privacy

GDPR by design

Checkbox GDPR configurabile per evento con testo e link. Prova del consenso (art. 7.1): testo, timestamp, URL privacy, versione policy. DSAR export + erase con doppio canale. Dichiarazioni trattamenti al Privacy Hub.

Flusso operativo

Modalita automatica

Admin crea evento → pubblica con form iscrizione
Utente compila il form → validazione + check posti + honeypot
Iscrizione salvata → status confirmed
QR code generato → email conferma con QR allegato
All’ingresso evento → scanner QR da telefono con PIN
Dopo l’evento → email survey automatica o manuale

Modalita con approvazione e orario

Utente si iscrive → status pending, email “in attesa”
Approvatore riceve email → bottoni Approva / Rifiuta (link HMAC)
Clic su Approva → form con campo orario + riepilogo iscrizione
Inserisce orario e conferma → status confirmed, QR generato, email con orario
Clic su Rifiuta → status rejected, email notifica all’iscritto

Integrazione con l’ecosistema DB

Il plugin funziona in completa autonomia, ma se sono presenti altri plugin DB sul sito le integrazioni si attivano automaticamente.

DB Form Builder 2.0.0+ — usa un form DBFB esistente come form di iscrizione. DBFB gestisce validazione e campi, DBEM gestisce iscrizione + QR + email.

DB Privacy Hub 1.0.0+ — il plugin dichiara 3 trattamenti nel registro privacy unificato via filter dbph_processing_register. Le DSAR vengono tracciate nello Storico DSAR del Hub.

DB Privacy Hub 1.3.0+ — dalla 1.3.0, il plugin dichiara la propria fonte di consensi al filter dbph_consents_register. Ogni iscrizione con consenso prestato e linkata all’ID della versione Privacy Policy in vigore.

DB SEO Manager 1.2.x — retro-compatibilita con il filter legacy dbseo_processing_register.

Pannello di amministrazione

Menu top-level Event Manager con sotto-pagine.

PaginaFunzione
Tutti gli EventiLista eventi con stato, conteggio iscritti, categorie
Aggiungi EventoEditor con metabox dettagli, iscrizioni (campi drag & drop, GDPR, approvazione, orario), email, survey
PartecipantiTabella per evento con stati, check-in, orario, azioni singole e bulk, export CSV
Check-inScanner QR admin + ricerca manuale + contatore presenti
SurveyRiepilogo risposte con conteggi, export CSV
ImpostazioniPagina elenco eventi, PIN check-in/partecipanti, link pagine pubbliche, shortcode disponibili

Pagine pubbliche

Quattro URL pubblici, ciascuno con il proprio sistema di protezione. Nessuno richiede login WordPress.

URLFunzioneProtezione
/?dbem_checkin_page=1Check-in con scanner QR da telefonoPIN
/?dbem_participants_page=1Lista partecipanti con azioni e exportPIN
/?dbem_checkin={token}Check-in diretto da scansione QRToken univoco
/?dbem_survey={token}Survey post-eventoToken univoco

Shortcode e blocchi Gutenberg

ShortcodeFunzione

Evento non trovato.

Dettagli evento + form iscrizione

Nessun evento disponibile.

Lista eventi futuri
24-25 Mag 2026

Test Scuola aperta

📅 24/05/2026 — 25/05/2026 📍 My house

Più date Concluso
Lista eventi passati

Nessun evento disponibile.

Limita il numero di eventi

Nessun evento disponibile.

Layout a 2 colonne

Nessun evento disponibile.

Filtra per categoria (anche multipla con virgola)

Tutti i parametri sono combinabili. Disponibili anche due blocchi Gutenberg: “Evento singolo” e “Lista eventi”.

Quanto costa

FunzionalitaPrezzo
Gestione eventi con CPT, categorie, stati automaticiGRATIS
Form iscrizione drag & drop con campi personalizzabiliGRATIS
Approvazione manuale con assegnazione orarioGRATIS
QR code personale con email di confermaGRATIS
Check-in con scanner QR da telefonoGRATIS
Pagina pubblica partecipanti con azioniGRATIS
Iscrizione manuale e modifica orarioGRATIS
Survey post-evento con link univocoGRATIS
Email automatiche con placeholder dinamiciGRATIS
Export CSV partecipanti e surveyGRATIS
Checkbox GDPR configurabile con link privacyGRATIS
Prova del consenso GDPR (art. 7.1)GRATIS
DSAR integration (export + erase) con doppio canaleGRATIS
Dichiarazioni trattamenti al Privacy HubGRATIS
Integrazione con DB Form BuilderGRATIS
Blocchi Gutenberg + shortcodeGRATIS
Aggiornamenti automatici da GitHubGRATIS
Accessibilita WCAG 2.1 AAGRATIS
SupportoCommunity (GitHub Issues)

Nessun tier Pro. Nessun limite sul numero di eventi o iscritti. Nessun costo nascosto.

Installazione

  1. Scarica il file ZIP da questa pagina o da GitHub Releases
  2. WordPress admin → Plugin → Aggiungi nuovo → Carica plugin → seleziona ZIP → Installa ora → Attiva
  3. Vai in Impostazioni → Permalink → Salva modifiche per rigenerare le regole di rewrite
  4. Vai a Event Manager → Aggiungi Evento: compila nome, date, luogo, configura form iscrizione e checkbox GDPR
  5. Scegli la modalita: accettazione automatica o con approvazione. Se approvazione, abilita “Assegnazione orario”
  6. Personalizza l’email di conferma con i placeholder. Usa {orario} per includere l’orario assegnato
  7. Pubblica l’evento e inseriscilo in una pagina con il blocco Gutenberg o lo shortcode

    Evento non trovato.

  8. (Opzionale) Imposta un PIN in Event Manager → Impostazioni per le pagine pubbliche check-in e partecipanti
  9. (Consigliato) Installa DB Privacy Hub per il registro privacy + Privacy Policy generata + Registro consensi unificato

Struttura del plugin

db-event-manager/
├── db-event-manager.php             # bootstrap, costanti, marker DSAR_AVAILABLE
├── README.md
├── LICENSE
├── assets/
│   ├── css/
│   │   ├── db-admin-ui.css          # design system condiviso
│   │   ├── admin.css
│   │   └── frontend.css
│   └── js/
│       ├── admin.js
│       ├── frontend.js
│       ├── checkin.js               # scanner QR admin
│       ├── blocks.js                # blocchi Gutenberg
│       └── vendor/
│           ├── html5-qrcode.min.js  # scanner QR (375KB, locale)
│           └── Sortable.min.js      # drag & drop campi (45KB, locale)
├── inc/
│   ├── class-updater.php            # GitHub auto-updater
│   ├── class-db.php                 # tabelle custom + CRUD + migrazione schema
│   ├── class-cpt.php                # CPT dbem_event + tassonomia
│   ├── class-admin.php              # metabox, menu, partecipanti, bulk
│   ├── class-frontend.php           # render evento + form iscrizione
│   ├── class-registration.php       # gestione iscrizioni + consent capture
│   ├── class-email.php              # email con placeholder + QR allegato
│   ├── class-qrcode.php             # wrapper phpqrcode con namespace DBEM_
│   ├── class-checkin.php            # check-in admin + pubblico + partecipanti
│   ├── class-survey.php             # survey post-evento
│   ├── class-export.php             # export CSV
│   ├── class-cron.php               # WP Cron: promemoria, survey auto
│   ├── class-shortcodes.php
│   ├── class-gutenberg.php
│   ├── class-privacy-declarations.php # dichiarazioni trattamenti + consent register
│   ├── class-privacy-dsar.php       # DSAR export/erase dual channel
│   └── lib/
│       └── phpqrcode.php            # QR code PHP pura (LGPL 3), classi DBEM_*
└── templates/
    ├── single-dbem_event.php
    ├── archive-dbem_event.php
    ├── admin/
    │   ├── checkin.php
    │   ├── participants.php
    │   └── survey.php
    └── frontend/
        ├── checkin.php              # pagina pubblica check-in con PIN
        ├── participants.php         # pagina pubblica partecipanti con PIN
        └── survey.php
      

Changelog

v1.3.02026

Privacy integration GDPR + checkbox configurabile

  • Integrazione ecosistema privacy: dichiarazioni trattamenti al Privacy Hub, DSAR export/erase con doppio canale, consent storage con 5 colonne GDPR
  • Checkbox GDPR configurabile per evento: on/off, testo personalizzabile, link privacy policy con fallback a pagina Privacy WP
  • Link “Leggi l’informativa privacy” cliccabile nel form di iscrizione
  • Costante DBEM_DSAR_AVAILABLE per integrazione con Privacy Hub policy generator
  • Dichiarazione email privacy con mittente configurato e info trasporto SMTP
  • Filter dbph_consents_register: esposizione consensi al Registro consensi unificato del Hub
v1.2.02026

Pagina pubblica partecipanti + iscrizione manuale

  • Pagina pubblica partecipanti con PIN, filtri stato, azioni (approva/rifiuta/check-in/reinvia email)
  • Iscrizione manuale da pagina pubblica (nome + email + orario opzionale)
  • Modifica orario assegnato con modal dedicato
  • Export CSV lato client con filtro attivo
  • Fix sfarfallio hover sulla tabella partecipanti
v1.1.02026

Approvazione con assegnazione orario

  • Approvazione con assegnazione orario: form inline nel link email con campo orario + riepilogo
  • Nuovo placeholder email {orario}
  • Colonna “Orario assegnato” nella tabella partecipanti e nel CSV export
  • Libreria phpqrcode refactorizzata con namespace isolato (DBEM_QRcode_Lib)
  • Fix timezone: date in ora locale corretta senza doppia conversione
v1.0.02026

Release iniziale

  • Gestione eventi con CPT, categorie, meta
  • Form iscrizione integrato + integrazione DB Form Builder
  • Approvazione via email con bottoni HMAC
  • QR code con phpqrcode (PHP puro)
  • Check-in con scanner QR — pagina pubblica con PIN
  • Email: conferma, pending, approvazione, rifiuto, promemoria, survey, annullamento
  • Survey post-evento con link univoco
  • Shortcode con parametri + Blocchi Gutenberg
  • Aggiornamenti automatici da GitHub
  • Accessibilita WCAG 2.1 AA

Other Plugins

v1.3.0

DB Privacy Hub

Open Source — GPL v2 DB Privacy Hub Hub privacy unificato per l’ecosistema plugin DB. Genera la Privacy Policy che…

v1.3.0

DB SEO Manager

Open Source — GPL v2 DB SEO Manager SEO completa per WordPress, costruita prima di tutto per il GDPR. Niente…

v3.0.3

DB Site Analytics

DB Site Analytics Tracciamento visite server-side: nessun cookie, nessun servizio esterno, solo visite reali. I dati restano nel tuo database.…