Title: The Bonnie Situation
Author: nicksull
Published: <strong>September 19, 2026</strong>
Last modified: September 19, 2026

---

Search plugins

![](https://ps.w.org/the-bonnie-situation/assets/banner-772x250.png?rev=3703186)

![](https://ps.w.org/the-bonnie-situation/assets/icon-256x256.png?rev=3703186)

# The Bonnie Situation

 By [nicksull](https://profiles.wordpress.org/nicksull/)

[Download](https://downloads.wordpress.org/plugin/the-bonnie-situation.1.0.0.zip)

 * [Details](https://wordpress.org/plugins/the-bonnie-situation/#description)
 * [Reviews](https://wordpress.org/plugins/the-bonnie-situation/#reviews)
 *  [Installation](https://wordpress.org/plugins/the-bonnie-situation/#installation)
 * [Development](https://wordpress.org/plugins/the-bonnie-situation/#developers)

 [Support](https://wordpress.org/support/plugin/the-bonnie-situation/)

## Description

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.

#### Privacy-first defaults

IP storage is off, spam is discarded, user agent and referrer are off, and only 
mapped fields are stored. 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](https://beforebonnie.com/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.
 * **WP-CLI** — `wp bonnie purge` runs the retention sweep on demand.

### 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](https://www.npmjs.com/package/@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.

## Screenshots

[⌊Submissions list with status views, search and filtering.⌉⌊Submissions list with
status views, search and filtering.⌉[

Submissions list with status views, search and filtering.

[⌊Single submission detail view.⌉⌊Single submission detail view.⌉[

Single submission detail view.

[⌊Privacy & Retention settings.⌉⌊Privacy & Retention settings.⌉[

Privacy & Retention settings.

## Installation

 1. Install and activate **Contact Form 7** (Bonnie is an add-on for it).
 2. Upload the `the-bonnie-situation` folder to `/wp-content/plugins/`, or install 
    through the Plugins screen.
 3. Activate Bonnie through the **Plugins** screen.
 4. Visit **Bonnie  Settings** to choose your retention policy. Submissions are captured
    automatically from then on.

## FAQ

### Does this interfere with Contact Form 7 sending email?

No. Capture runs after mail handling and is wrapped so a storage failure is logged
silently rather than breaking the form.

### Are IP addresses stored?

Not by default. IP storage is off out of the box. Bonnie Pro adds the option to 
anonymise (mask the last octet / last 80 bits) instead of storing the full address.

### Does the free version keep a trash or recycle bin?

No. The free core is delete-only: submissions past their retention window are permanently
deleted, with no second store to manage. Bonnie Pro adds an optional trash workflow—
soft-delete with a restore window and a hard cap that force-deletes trashed entries.

### How do I guarantee purge timing on a low-traffic site?

Retention runs daily via WP-Cron. On sites with little traffic, trigger `wp-cron.
php` from a real system cron so the sweep fires on schedule.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“The Bonnie Situation” is open source software. The following people have contributed
to this plugin.

Contributors

 *   [ nicksull ](https://profiles.wordpress.org/nicksull/)

[Translate “The Bonnie Situation” into your language.](https://translate.wordpress.org/projects/wp-plugins/the-bonnie-situation)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/the-bonnie-situation/),
check out the [SVN repository](https://plugins.svn.wordpress.org/the-bonnie-situation/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/the-bonnie-situation/)
by [RSS](https://plugins.trac.wordpress.org/log/the-bonnie-situation/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 1.0.0

 * Initial release: capture Contact Form 7 submissions to a custom table, a DataViews
   submissions admin (search/sort/filter with a per-submission detail view and permanent
   delete), delete-only retention with a scheduled daily purge and audit log, IP-
   storage suppression, and WordPress Personal Data export/erase integration.

## Meta

 *  Version **1.0.0**
 *  Last updated **4 days ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.7 or higher **
 *  Tested up to **7.1.2**
 *  PHP version ** 8.1 or higher **
 * Tags
 * [cf7](https://wordpress.org/plugins/tags/cf7/)[contact form 7](https://wordpress.org/plugins/tags/contact-form-7/)
   [data retention](https://wordpress.org/plugins/tags/data-retention/)[GDPR](https://wordpress.org/plugins/tags/gdpr/)
   [privacy](https://wordpress.org/plugins/tags/privacy/)
 *  [Advanced View](https://wordpress.org/plugins/the-bonnie-situation/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/the-bonnie-situation/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/the-bonnie-situation/reviews/)

## Contributors

 *   [ nicksull ](https://profiles.wordpress.org/nicksull/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/the-bonnie-situation/)