Directory / plugin

The Bonnie Situation – Contact Form 7 Database & Auto-Delete

v1.2.0 · by nicksull

Save Contact Form 7 submissions to your database, then auto-delete them on a schedule. GDPR-friendly CF7 storage that imports Flamingo & CFDB7.

About this plugin

Contact Form 7 does not store submissions: once the email is sent, the data is gone. The usual fix is to bolt on a storage add-on that keeps everything forever, including IP addresses, with no expiry. The moment a form collects personal data, that becomes unbounded risk.

The Bonnie Situation captures every Contact Form 7 submission to the database and treats stored data as a liability. It suppresses IP storage by default and automatically deletes entries after a configurable number of days, enforced by a scheduled job. Clean it up before Bonnie gets home.

What it does

  • Capture every CF7 submission to a custom table, after mail handling, so it never delays or blocks your email.
  • Browse, search, sort and filter submissions in a modern DataViews admin, with a per-submission detail view.
  • Delete individual submissions permanently, on demand.
  • Delete-only retention: suppress IP storage and automatically delete submissions after a configurable number of days — enforced daily by WP-Cron, with an audit log of every purge.
  • Subject-request tooling: integrates with WordPress’s Tools Export/Erase Personal Data so requests by email include captured submissions.
  • Import from Flamingo and CFDB7: bring existing entries across in one click, under your privacy settings and retention window — the source plugin doesn’t even need to be active.

Clean it up before Bonnie gets home.

Privacy-first defaults

IP storage is off, spam is discarded, user agent and referrer are off, CF7’s internal fields are never stored, and Contact Form 7’s own do_not_store and consent_for:storage opt-outs are honoured. The plugin provides controls that support GDPR / UK GDPR / Australian Privacy Act / CCPA compliance; lawful basis and configuration remain the site operator’s responsibility. This is not legal advice.

Bonnie Pro

This plugin is fully functional on its own: it captures submissions and enforces delete-only retention. Bonnie Pro, a separate add-on distributed off WordPress.org, adds:

  • CSV / JSON export of the current view or selected rows.
  • Address book of deduplicated contacts, with click-through to each contact’s submissions.
  • Trash workflow — soft-delete with a restore window and a hard cap that force-deletes trashed entries, instead of the free delete-only model.
  • Bulk delete across selected submissions.
  • Per-form overrides — each form sets its own policy, window, IP rule and field mapping on the Contact Form 7 editor.
  • IP anonymisation — store a masked address (last octet / last 80 bits) instead of the full IP.
  • Encryption at rest — names, emails, subjects and form fields encrypted in the database, with the key kept in wp-config.php.
  • WP-CLI — wp bonnie purge runs the retention sweep on demand, and wp bonnie import runs the Flamingo / CFDB7 import from a script.

Development

Bonnie is free software (GPLv2 or later). The complete, human-readable source —
including the React admin under src/ and the build tooling — is developed in
the open:

https://github.com/nicksull/the-bonnie-situation

That repository holds the un-minified source for every shipped asset — the
React admin entry points src/index.js and src/settings.js that compile to
build/index.js and build/settings.js. Build them with
@wordpress/scripts:

npm install
npm run build

Bonnie Pro is a separate add-on, distributed off WordPress.org. This plugin is
fully functional without it.

Plugin tags