Linux 软件免费装
Banner图

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

开发者 nicksull
更新时间 2026年11月2日 17:14
PHP版本: 8.1 及以上
WordPress版本: 7.1
版权: GPLv2 or later
版权网址: 版权信息

标签

contact form 7 gdpr cf7 database form submissions data retention

下载

1.1.0 1.0.0 1.2.0 1.3.0

详情介绍:

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 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:

安装:

  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.

屏幕截图:

  • Single submission detail view.
  • Privacy & Retention settings.

升级注意事项:

1.3.0 Warns in Site Health when the scheduled cleanup fails or stops running, and fixes database errors during a purge being reported as success. No database changes. 1.2.0 Adds a one-click importer for Flamingo and CFDB7 entries, and honours Contact Form 7's do_not_store / consent_for:storage opt-outs. No database changes. 1.1.0 Includes a small automatic database update (wider columns and an email-hash column) to support encryption at rest in add-ons. No changes to capture or retention. 1.0.0 Initial release.

常见问题:

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.

Does Contact Form 7 save form submissions?

No. Contact Form 7 emails each submission and keeps nothing in the database. To keep a record you need a storage plugin — Bonnie stores every submission, then deletes it when your retention window ends.

How is Bonnie different from Flamingo or CFDB7?

Flamingo and CFDB7 save submissions but do not expire them: entries stay in your database until someone deletes them by hand, and neither removes its data when uninstalled. Flamingo also records the sender's IP address and user agent by default. Bonnie stores no IP by default, deletes each submission automatically after the number of days you choose, logs every purge, and supports both the WordPress personal-data exporter and eraser.

Can I import my existing Flamingo or CFDB7 entries?

Yes. Go to Bonnie → Settings → Import. Bonnie finds Flamingo and CFDB7 data in your database (the plugins can be active or deactivated) and imports it in batches. Imported entries follow your current settings: IP addresses, user agents and referrers are dropped unless you've turned them on, spam is skipped unless you capture spam, and entries already older than your retention window are skipped. Running it again only imports what is new. Nothing in the source plugin is changed — delete the old entries there once you've checked the import.

How long should I keep contact form submissions?

As short a time as you actually need them. GDPR's storage-limitation principle (and the Australian Privacy Act's equivalent) says personal data shouldn't be kept longer than its purpose requires; for enquiry forms, many sites choose 30 to 90 days. Bonnie enforces whatever window you set. This is not legal advice.

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. If no cleanup has succeeded for 48 hours, Bonnie flags it in Site Health and on the dashboard.

What happens if the scheduled cleanup fails?

You're told. Bonnie records every cleanup run, and if one fails, or none has succeeded for 48 hours, it shows a critical item in Tools → Site Health and a notice on the dashboard and Bonnie's screens. If the daily schedule itself goes missing, Bonnie recreates it. The warning clears on the next successful run. Bonnie Pro can also send the alert by email, Slack or webhook.

更新日志:

1.3.0 1.2.0 1.1.0 1.0.0