Skip to content

DB Form Builder

v2.24.0
Open Source — GPL v2

DB Form Builder

Form builder per WordPress con la privacy come impostazione predefinita. Drag & drop, logica condizionale, prova del consenso per ogni risposta, retention automatica, richieste GDPR integrate. Dalla 2.21 le risposte si consultano da smartphone o PC in una web app installabile, con notifiche e, se usi WooCommerce, collegamento agli ordini. Niente account esterni, niente telemetria, niente versione Pro.

v2.24.0 WordPress 5.8+ PHP 7.4+ GDPR art. 7 · 15 · 17 Web app installabile WooCommerce · HPOS

Versione 2.24.0 · Ottobre 2026 · Davide Bertolino · Licenza GPL v2

L’idea di fondo

Il form è il punto in cui un sito raccoglie dati personali nel modo più diretto: nome, email, messaggi, documenti. Molti plugin si fermano lì, con un’email all’amministratore e una casella GDPR facoltativa. Il risultato è un’informativa che non descrive quello che il sito fa davvero e nessuna prova di chi ha accettato cosa.

DB Form Builder parte dall’idea opposta: la conformità è il comportamento predefinito, non un’opzione da ricordarsi di attivare. L’IP è salvato come hash, le risposte hanno una scadenza, gli allegati stanno in una cartella non accessibile dal web, ogni risposta conserva la prova del consenso e la forma esatta del modulo compilato. Le richieste di accesso e cancellazione passano dagli strumenti nativi di WordPress.

La serie 2.19–2.24 porta le risposte fuori dalla scrivania, con la stessa regola: sul telefono resta solo l’interfaccia, mai i dati.

Principi

Privacy predefinita

IP come hash, retention automatica con cancellazione degli allegati, prova del consenso salvata con la risposta, reCAPTCHA caricato solo dopo il consenso.

Prove documentali

Ogni risposta conserva testo del consenso, data, link all’informativa e versione della Privacy Policy, più le etichette dei campi com’erano al momento dell’invio.

Dati sul sito

Nessun servizio esterno obbligatorio. Web app e notifiche push sono implementate nel plugin, senza librerie di terze parti né account.

Hosting condiviso

Funziona su un hosting da pochi euro: niente WebSocket né processi in background, compatibile con la cache di pagina, PHP 7.4+.

Novità: le risposte in tasca

Con la 2.24.0 si chiude una serie di sei versioni dedicata a chi le risposte le deve seguire ogni giorno, anche lontano dal computer.

Web app · 2.21

Installabile sul telefono

Su /dbfb-app/ del tuo sito: elenco dei form con le risposte nuove, filtri per stato, dettaglio con allegati. Si installa su Android, iPhone e PC, tema chiaro e scuro.

Notifiche · 2.22

Avviso a ogni risposta

Notifiche push sul dispositivo, oppure ntfy e Telegram. Il messaggio dice solo “Nuova risposta” e il nome del form: mai i dati della risposta.

Ruolo · 2.20

Gestore form

Un ruolo per collaboratori e segreterie: vedono le risposte nella web app e il proprio profilo, nient’altro dell’amministrazione.

Stato · 2.19

Nuova, letta, archiviata

Ogni risposta ha uno stato, anche nell’admin: filtri, azioni di massa, 50 risposte per pagina. Aprire una risposta la segna come letta.

WooCommerce · 2.23

Ordini del cliente

Accanto alla risposta, gli ordini dello stesso cliente trovati per email o account. In home, gli ultimi ordini del negozio.

WooCommerce · 2.24

Dal preventivo all’ordine

“Crea ordine” da una richiesta di preventivo: dati di fatturazione precompilati, importo libero, link di pagamento al cliente.

La web app delle risposte

Si apre all’indirizzo https://tuosito.it/dbfb-app/ con il login di WordPress. Il link e le istruzioni sono in Form Builder → Web app.

Cosa si fa

  • Elenco dei form con il numero di risposte nuove, che si aggiorna da solo mentre l’app è aperta.
  • Risposte di un form filtrate per stato (nuove, lette, archiviate), con “Carica altre”. Se ne arrivano mentre leggi, compare un pulsante per mostrarle: il contenuto non si sposta sotto il dito.
  • Dettaglio con tutti i campi, gli allegati (link validi 15 minuti), il consenso e la provenienza della campagna. Si archivia, si ripristina, si rimette tra le nuove.
  • Badge sull’icona dell’app installata con il numero di risposte nuove, dove il sistema lo supporta.

Installazione sul dispositivo

DispositivoCome
Android (Chrome)Apri l’indirizzo, menu ⋮ → “Installa app”
iPhone e iPad (Safari)Condividi → “Aggiungi alla schermata Home”. Le notifiche push richiedono iOS 16.4 o successivo e l’app aggiunta alla Home
PC (Chrome, Edge)Icona di installazione nella barra degli indirizzi
Privacy sul dispositivo

Il service worker tiene in memoria solo l’interfaccia: HTML, CSS, JavaScript e icone. Le risposte arrivano dal sito a ogni apertura e non vengono salvate sul telefono. La pagina dell’app non carica script del tema o di altri plugin e ha una Content Security Policy che permette connessioni solo verso il sito. Se il telefono viene perso, basta cambiare la password dell’utente.

Il ruolo “Gestore form”

Per dare l’accesso alle risposte a chi non deve vedere il resto del sito, crea un utente con il ruolo Gestore form. Dopo il login arriva direttamente all’app; se prova ad aprire l’amministrazione viene riportato lì. Resta raggiungibile solo il suo profilo, per cambiare la password. Gli ordini WooCommerce non li vede, a meno che tu non lo decida.

Notifiche

Si configurano in Form Builder → Web app → Notifiche, con un pulsante per inviare una prova.

CanaleQuando usarlo
PushOgni utente le attiva dalla web app, sul singolo dispositivo. Arrivano anche con l’app chiusa. All’uscita dall’app la sottoscrizione del dispositivo viene revocata.
ntfyUn topic su ntfy.sh o su un server tuo, con token facoltativo. Utile dove il push non arriva, per esempio iPhone senza app installata.
TelegramUn bot che scrive in una chat o in un canale del team.

Il Web Push è implementato nel plugin, senza Composer e senza librerie: firma VAPID e cifratura del messaggio (RFC 8291) con le funzioni OpenSSL di PHP. Funziona da PHP 7.4, anche sugli hosting che non hanno un file di configurazione OpenSSL. Il messaggio contiene solo “Nuova risposta”, il titolo del form (disattivabile) e il link all’app; l’invio parte dopo il salvataggio, quindi chi compila il form non aspetta.

WooCommerce

Il modulo si attiva solo se WooCommerce è installato. È compatibile con l’archiviazione degli ordini ad alte prestazioni (HPOS) e con quella classica. Per vedere e creare ordini serve il permesso sugli ordini di WooCommerce, che hanno amministratore e Shop manager.

Ordini di questo cliente

Nel dettaglio di una risposta compaiono gli ordini dello stesso cliente, trovati confrontando l’email della risposta con l’email di fatturazione e con gli account registrati. L’email viene confrontata, non copiata.

Dal preventivo all’ordine

  1. “Crea ordine” dal dettaglio della richiesta. Il modulo arriva precompilato con i dati della risposta: nome e cognome (anche da un unico campo), azienda, email, telefono, indirizzo, città, CAP, provincia in sigla. Li controlli e correggi.
  2. Riga e importo. Una riga personalizzata, di default “Preventivo #ID — titolo del form”, con l’importo che scrivi tu. L’IVA segue le impostazioni del negozio. “1.250,00” e “1250” vanno bene; un importo ambiguo viene rifiutato, invece di diventare 1,25 €.
  3. Ordine in attesa di pagamento, collegato all’account del cliente se esiste, con una nota che indica la risposta di origine e chi l’ha creato. Righe e totale restano modificabili in WooCommerce.
  4. Link di pagamento da copiare, oppure inviato al cliente con l’email “Dettagli ordine” di WooCommerce. Se l’email non parte, l’app lo dice.

Risposta e ordine restano collegati nei due sensi. Il collegamento si cancella con la risposta (eliminazione, retention, richiesta GDPR); l’ordine resta, con le regole di conservazione di WooCommerce e gli obblighi fiscali.

Il form builder

Builder

Drag & drop

Testo, email, area di testo, menu, caselle, scelta singola, telefono, numero, data, URL, upload, campo nascosto, più testo/HTML, immagine, separatore e cambio pagina per i form a più passi.

Logica

Campi condizionali

Mostra o nascondi campi in base alle risposte, con condizioni AND/OR. I campi nascosti non vengono validati né salvati.

Upload

Allegati protetti

Estensioni e dimensione per campo, controllo del tipo reale del file. I file stanno in una cartella con accesso diretto negato e si scaricano solo dall’amministrazione.

Link

Precompilazione da URL

I campi si compilano da un link (?arrivo=2026-11-01). Compatibile con la cache di pagina.

Marketing

Provenienza delle campagne

Parametri UTM letti dall’indirizzo della pagina e salvati con la risposta, senza cookie né memoria nel browser.

Consenso

Consensi facoltativi

Caselle per newsletter e marketing, mai obbligatorie, con prova per voce e link di revoca nell’email di conferma (art. 7.3).

Email

Conferma e notifica

Testi personalizzabili con segnaposto inseribili con un clic, più destinatari, documenti della Media Library nella conferma.

Aspetto

Colori con contrasto garantito

Sfondo, pulsanti e testo, globali o per form. Il contrasto dei pulsanti resta WCAG AA in automatico.

Anti-spam

reCAPTCHA dopo il consenso

v2 o v3, caricato nel browser solo dopo il consenso marketing. Honeypot con token firmato e limite di invii per IP sempre attivi.

Integrazioni

Webhook affidabili

Invio asincrono con tentativi ripetuti, firma HMAC facoltativa e coda degli invii falliti consultabile dall’admin.

Siti

Esporta e importa

Un form come file JSON, per passarlo dal sito di test alla produzione. Gli indirizzi del sito vengono riscritti, il webhook arriva spento.

Inserimento

Blocco, shortcode, widget

Blocco Gutenberg, shortcode e widget classico. Redirect dopo l’invio ed eventi JavaScript per misurare le conversioni.

Privacy by design

AspettoCome è gestito
Indirizzo IPHash SHA-256 con salt del sito (predefinito), nessun salvataggio, oppure in chiaro (sconsigliato). Gli header dei proxy sono ignorati, salvo dichiarazione esplicita via filter.
ConservazioneRisposte cancellate dopo N giorni (predefinito 365) da un cron giornaliero, insieme ad allegati, invii webhook e collegamenti agli ordini.
Prova del consensoTesto letto, data, link all’informativa e versione della Privacy Policy (con DB Privacy Hub) salvati con ogni risposta (art. 7.1).
Forma del moduloOgni risposta conserva etichette e tipi dei campi al momento dell’invio: modificare il form non rende illeggibili le risposte vecchie.
Richieste GDPREsporta e Cancella dati personali di WordPress (artt. 15 e 17): risposte, allegati, consensi, invii webhook e ordini collegati.
AllegatiNome del file con prefisso casuale, cartella con accesso diretto negato, download solo da admin o con link firmati a scadenza (webhook, web app).
Web app e notificheNessuna risposta in cache sul dispositivo; notifiche senza dati delle risposte; sottoscrizioni push revocate all’uscita.
Registro dei trattamentiCon DB Privacy Hub il plugin dichiara da solo i trattamenti attivi: risposte, email, reCAPTCHA, webhook, consensi, notifiche al personale, WooCommerce.
Cache di pagina

Il form funziona con WP Rocket, LiteSpeed Cache e Cloudflare APO: l’HTML è uguale per tutti i visitatori e per gli anonimi l’invio non dipende da un nonce che scade in cache. La web app invia header no-store e segnala ai plugin di cache di non memorizzarla.

Webhook

I webhook inoltrano le risposte a CRM, Make, Zapier o n8n. Se il server remoto non risponde, la risposta non va persa.

Invio del form → risposta salvata → invio in coda, eseguito subito in background
2xx → consegnato
5xx, 408, 429, timeout → nuovo tentativo dopo 1 min, 5 min, 30 min, 2 h, 12 h
5 tentativi falliti → coda degli invii falliti, da riprovare a mano

La firma HMAC SHA-256 facoltativa arriva nell’header X-DBFB-Signature, come nei webhook di GitHub e Stripe. Gli allegati viaggiano come link firmati validi 7 giorni. Lo storico è in Form Builder → Webhook Deliveries, con filtro per stato, ultimo errore e nuovo invio in blocco.

Con gli altri plugin DB

Il Form Builder funziona da solo. Se trova gli altri plugin della suite, le integrazioni si attivano senza configurazione.

DB Cookie Manager — il consenso del banner decide quando caricare reCAPTCHA (anche con altri banner compatibili con WP Consent API).

DB Privacy Hub — registro dei trattamenti, registro unificato dei consensi, storico delle richieste GDPR e versione della Privacy Policy collegata a ogni consenso.

WooCommerce — ordini del cliente e ordini dai preventivi nella web app.

Per sviluppatori

API REST

Namespace dbfb/v1, con cookie e nonce dal sito oppure Application Passwords per i client esterni. Serve il permesso dbfb_view_submissions; limite di 120 richieste al minuto per utente.

curl -u "utente:xxxx xxxx xxxx xxxx xxxx xxxx" \
  "https://tuosito.it/wp-json/dbfb/v1/submissions?status=new&per_page=10"
RottaUso
GET /formsForm con totale e risposte nuove
GET /submissionsRisposte paginate, filtri per form, stato e since_id
GET /submissions/{id}Dettaglio con campi, allegati, consensi, provenienza
PATCH /submissions/{id}Cambio di stato: new, read, archived
GET /statsRisposte per giorno e per form
GET /updatesUltima risposta e nuove per form, per il polling

Hook principali

HookUso
dbfb_submission_savedAction dopo il salvataggio di una risposta: $submission_id, $form_id, $form_data
dbfb_consent_revokedAction quando un consenso facoltativo viene revocato, per sincronizzare CRM e newsletter
dbfb_order_created_from_submissionAction dopo la creazione di un ordine da una risposta
dbfb_cleanup_submissions_doneAction dopo ogni esecuzione della retention
dbfb_trust_proxy_headersFilter: leggere l’IP dagli header del proxy (sito dietro un proxy fidato)
dbfb_recaptcha_categoryFilter: categoria di consenso richiesta per reCAPTCHA (predefinita marketing)
dbfb_dsar_email_field_idsFilter: campi da considerare come email dell’interessato
dbfb_notification_messageFilter: testo delle notifiche (senza dati delle risposte)
dbfb_orders_capabilityFilter: permesso per vedere gli ordini nella web app

L’elenco completo di filter e action è nel README su GitHub.

Quanto costa

FunzionalitàPrezzo
Form builder, logica condizionale, upload, form a più passiGRATIS
Prova del consenso, consensi facoltativi, richieste GDPR, retentionGRATIS
Web app installabile, ruolo Gestore form, API RESTGRATIS
Notifiche push, ntfy, TelegramGRATIS
Integrazione WooCommerce e ordini dai preventiviGRATIS
Webhook con tentativi ripetuti e firma HMACGRATIS
Aggiornamenti automatici da GitHubGRATIS
SupportoCommunity (GitHub Issues)

Nessuna versione Pro, nessun limite di form o risposte, nessuna registrazione.

Installazione

  1. Scarica lo ZIP da questa pagina o dalle Release su GitHub.
  2. Plugin → Aggiungi nuovo → Carica plugin, scegli lo ZIP, installa e attiva. Gli aggiornamenti successivi arrivano da soli in Plugin → Aggiornamenti.
  3. Form Builder → Nuovo Form: parti da un modello o da zero, trascina i campi, imposta email, consenso e anti-spam.
  4. Inserisci il form con il blocco “Form Builder” o con lo shortcode .
  5. Form Builder → Web app (facoltativo): apri l’app sul telefono, installala, attiva le notifiche. Per i collaboratori crea utenti con il ruolo Gestore form.
Requisiti della web app

Per installarla e aprirla offline servono HTTPS e permalink diversi da “Semplice”. Se un plugin di sicurezza blocca /wp-json/, la pagina Form Builder → Web app lo rileva e mostra un avviso.

Domande frequenti

Funziona senza DB Privacy Hub?

Sì. Consenso, richieste GDPR e retention funzionano da soli; con l’Hub si aggiungono il registro dei trattamenti, il registro unificato dei consensi e il collegamento alla versione esatta della Privacy Policy.

La web app è un’app da scaricare dagli store?

No. È una pagina del tuo sito che si installa come un’app (PWA): niente store, niente account, niente server di terze parti. Si aggiorna con il plugin.

Le notifiche passano da server esterni?

Il push passa dal servizio del browser (Google, Mozilla, Apple, Microsoft), come qualsiasi notifica web, ma il messaggio è cifrato per il singolo dispositivo e non contiene dati delle risposte. ntfy e Telegram, se li attivi, ricevono solo il testo dell’avviso. I canali attivi sono dichiarati nel registro dei trattamenti.

Serve WooCommerce?

No. Il modulo WooCommerce si carica solo se WooCommerce è attivo; senza, la web app mostra solo form e risposte.

Funziona su hosting condiviso?

Sì, è pensato per questo: niente WebSocket né processi sempre attivi. L’app controlla le novità ogni 15 secondi solo mentre è aperta e in primo piano (intervallo regolabile), con una richiesta leggera.

Dove finiscono gli allegati?

In wp-content/uploads/dbfb/, fuori dalla Media Library, con nome reso imprevedibile e accesso diretto negato. Su Nginx serve una regola nella configurazione del server, che il plugin suggerisce. Si cancellano con la risposta.

Aggiornando dalle versioni precedenti perdo qualcosa?

No. Le migrazioni del database sono automatiche e ripetibili; le risposte già presenti diventano “lette”, così l’archivio non compare tutto come nuovo.

Versioni recenti

2.24.0Ottobre 2026

Ordine WooCommerce da una risposta

  • “Crea ordine” con fatturazione precompilata, importo libero e link di pagamento
  • Gestore form tenuto fuori dall’amministrazione; controllo delle API bloccate
2.23.0Ottobre 2026

Ordini del cliente nella web app

2.22.0Ottobre 2026

Aggiornamenti in tempo reale e notifiche push, ntfy, Telegram

2.21.0Ottobre 2026

Web app installabile delle risposte

2.20.0Ottobre 2026

API REST e ruolo Gestore form

2.19.0Ottobre 2026

Stato delle risposte, filtri e paginazione

Le versioni dalla 2.12 alla 2.18 hanno aggiunto form compatibili con la cache di pagina, allegati protetti, documenti nella conferma, precompilazione da URL, consensi facoltativi con revoca, provenienza delle campagne ed esportazione dei form. Changelog completo su GitHub.

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.…