Limited-Time Offer

Get Extra 20% off on FullCharge Yearly Plan — available for first 10 users only. Don’t miss out! 🚀

Double Opt-In for Contact Form 7 · Version history

Double Opt-In for Contact Form 7 changelog and version history

Latest version
5.14.0
Oct 15, 2026 (25 days ago)
Releases
47
since 2022
In the last year
28
about one every 10 days
Tested up to
WordPress 7.1.4
PHP 7.4 or later

Releases each year

  • 20221 release
  • 20234 releases
  • 20246 releases
  • 20258 releases
  • 202628 releases

202628 releases

  1. Double Opt-In for Contact Form 7 5.14.0Latest

    • New: forms that a Pro module groups into a subscription can take their sender, subject, mail, confirmation and error page and category from that subscription. The consent text and consent field always stay with the form, and the settings stored on each form are never changed. Nothing changes withou…
    • New: filter f12_doi_form_config_inherited and the admin extension point forms.banner on the form settings page.
    • Improved: a form whose required fields are supplied by its subscription is no longer reported as incomplete.
  2. Double Opt-In for Contact Form 7 5.13.1

    • New: the Opt-Out settings page (part of the paid Opt-Out add-on) shows a hint on the “Opt-Out Email” card when the saved mail has no opt-out link placeholder, for example when an opt-in template with [doubleoptinlink] is chosen. Needs Opt-Out add-on 1.8.1.
  3. Double Opt-In for Contact Form 7 5.13.0

    • New: the Notifications card on the Opt-Out settings page (part of the paid Opt-Out add-on) can also notify you about confirmed opt-ins and reactivations, and lets you write the subject, introduction and line of the mail with placeholders such as {form_title} and {category}, with a live preview. Nee…
  4. Double Opt-In for Contact Form 7 5.12.0

    • New: every new sign-up stores which form it came from when a page holds several forms (Elementor), so such forms can be told apart. Existing sign-ups are not changed. For Elementor forms this needs Elementor add-on 1.3.0.
    • New: the Opt-Ins list and the sign-up details can show and filter by subscription when a Pro module groups forms into subscriptions. Nothing changes without that module.
    • New: filter f12_doi_subscription_group_resolver for a module that provides subscription groups, a read-only route /subscription-groups and a group filter on the Opt-Ins list.
    • Improved: the consent export panel has a Subscription filter when subscription groups are available.
  5. Double Opt-In for Contact Form 7 5.11.0

    • New: a Help page inside the plugin with the setup guide, troubleshooting and shortcode reference, written in screenshots and short steps. Guides of installed add-ons appear there automatically (add-ons need their next release to bring their guide).
    • Fix: e-mail addresses, recipients and IP addresses are no longer written to the log (rate limit, recipient check, mail event).
    • Fix: the help text of the confirmation page field said a site-wide confirmation page would be used; without a page the link opens the site’s start page.
    • New: filter f12_doi_help_sources to add help articles from another plugin.
  6. Double Opt-In for Contact Form 7 5.10.0

    • New: the Opt-Out settings page (part of the paid Opt-Out add-on) has a “Notify me about unsubscribes” card. Needs Opt-Out add-on 1.6.0.
    • Improved: German and French texts for the new card.
  7. Double Opt-In for Contact Form 7 5.9.0

    • Withdrawals, every form plugin in the setup wizard, a confirmation page per outcome
    • New: opt-ins withdrawn through the opt-out show as “Revoked” (filter in the list, detail page, its own dashboard card) instead of “Pending”; the original confirmation stays visible.
    • New: the setup wizard offers the forms of every installed form plugin (WPForms, Elementor Pro, Gravity Forms and Avada with their add-ons), not only Contact Form 7, and finds the email field by its label.
    • New: [doi_if status=”confirmed”]…[/doi_if] shows its content only for the given outcome of the confirmation link, so one page can greet, explain an expired link and offer the form again.
    • New: the form settings warn when the stored consent text differs from the text next to the checkbox in the form (Contact Form 7), and take that text over in one click. Developers: FieldTextProviderInterface and the filter f12_doi_form_field_texts.
    • Fix: an add-on installed or activated on the Add-ons page works without reloading the page.
    • Fix: the audit log showed event types as internal keys and some messages in English; its rate-limit filter found nothing.
    • Fix: the WordPress personal data export described the mail status as “sent” instead of in words.
    • Fix: the opt-in list showed category numbers instead of names; the forms page said “1 forms”.
    • Fix: the credit request, the deactivation survey and the feedback links were not translated; the French translation had no plural rules.
  8. Double Opt-In for Contact Form 7 5.8.1

    • Fix: on sites in formal German (Sie), a sentence on the user creation page was shown in English, and the role appeared as its internal key (“subscriber”) instead of its name.
    • Fix: German admin texts used the English names “Conditional Templates”, “User Creation” and “Unique Email”; they now use the German terms throughout.
    • Fix: the breadcrumb on add-on settings pages read “Page”.
  9. Double Opt-In for Contact Form 7 5.8.0

    • Know whether the confirmation email went out
    • New: every opt-in records whether its confirmation email was handed to your mail server or failed, and why. Shown in the opt-in list (with a filter), on the detail page and in Site Health; included in the WordPress privacy export and eraser.
    • New: after a Contact Form 7 submission, visitors read “please confirm your address” with the sender and subject to look for, instead of “Thank you for your message”. When the email could not be sent, they are told so.
    • New: Site Health checks SPF and DMARC of the sender domain, the two most common reasons confirmation emails land in spam.
    • New: a dashboard hint when many recent opt-ins stay unconfirmed.
    • New: shortcodes [doi_confirmation_status], [doi_error_message] and [doi_field] for the confirmation and error pages, and a readable message when a link is broken or expired.
    • New: a hidden honeypot field and a minimum fill time keep simple bots away from Contact Form 7 double opt-in forms.
    • New: the forms page suggests add-ons only for form plugins that are installed on the site.
    • New: after ten confirmations, a one-time request for a review, only on the plugin’s own pages.
    • Changed: the free plugin no longer contains locked Pro features. Email template management and the opt-out page generator now live in their add-ons. If you use them, update the email editor add-on to 1.1.0 and the opt-out add-on to 1.5.0; Site Health reminds you.
    • Changed: a renewed consent after an opt-out no longer overwrites the original confirmation; it gets its own entry in the audit log.
    • Fix: the Activate button on the Add-ons page and links in REST responses were broken (“&” in the URL).
    • Fix: Avada forms without a notification were reported as a failed follow-up action.
    • Fix: several admin texts stayed English on translated sites; the breadcrumb read “Page” on detail pages; a waiting button now shows a countdown.
    • Developers: Core API 4.6.0 with the filters f12_doi_submit_notice_data and f12_doi_mail_headers, the events f12_doi_optin_opted_out and f12_doi_optin_reopted_in, follow-up adapters for add-ons and a shared resend service.
  10. Double Opt-In for Contact Form 7 5.7.0

    • A setup wizard gets new sites to the first working confirmation email
    • New: after installing the plugin, a short wizard sets up the sender, the Contact Form 7 forms that should ask for confirmation, the confirmation email and the page visitors see after clicking the link. Everything is prefilled; it takes about three minutes and can be skipped at any time. A test emai…
    • New: the sender name and address from the wizard are used for every form you switch on later. Confirmation emails without a sender name no longer arrive as “WordPress”.
    • New: if you also use Elementor Pro, WPForms, Gravity Forms or Avada Forms, the wizard tells you which add-on protects those forms.
    • Improved: forms that already use Double Opt-In are left exactly as they are. Existing sites do not see the wizard unless you start it under Settings.
    • Fix: this description listed the visual email editor, saved templates and test emails as free features. They are part of the email editor add-on; the free plugin offers three built-in email designs. Resending a confirmation email from the opt-in details is free.
  11. Double Opt-In for Contact Form 7 5.6.3

    • Fix: the developer reference this readme points to — docs/hooks-and-events.md and docs/addon-api.md — was never actually included in the plugin. Both files now ship.
    • Improved: the notice for major updates on the Plugins screen no longer starts with an emoji; it already sits in a warning box.
  12. Double Opt-In for Contact Form 7 5.6.2

    • A refused consent no longer looks like a successful sign-up
    • Fix: when a visitor left the consent checkbox unticked, Contact Form 7 still showed “Thank you for your message. It has been sent.” and emptied the form. The actual reason appeared only in a small notice that disappeared after ten seconds — so the visitor believed they were subscribed and waited fo…
    • Fix: the same on Elementor, WPForms and Gravity Forms forms — the consent checkbox is now marked the way a missed required field is, and the form stays on the page with the visitor’s input. This needs the Elementor add-on 1.2.1, the WPForms add-on 1.1.1 and the Gravity Forms add-on 1.1.1. With olde…
    • Developer: new AbstractFormIntegration::refusedConsentBeforeSubmit() for integrations whose submit hook runs after the form plugin has accepted the submission (Core API 4.5.0, additive).
    • Note: this applies to the consent checkbox only. Other refusals (rate limits, blocked domains, …) keep their current behaviour and can be shown in the form with the filter f12_cf7_doubleoptin_show_validation_error, which now also receives the error and the form ID.
  13. Double Opt-In for Contact Form 7 5.6.1

    • The admin no longer stays blank next to Avada and similar plugins
    • Fix: on some sites the Double Opt-In admin stayed blank or loaded only partly after 5.6.0, depending on the browser, with “clearTimeout is not a function” in the browser console. The admin script accidentally registered an internal helper under the global name _, which WordPress and many themes and…
  14. Double Opt-In for Contact Form 7 5.6.0

    • What happens after the confirmation click is now recorded, retried and visible
    • Security: a crafted request could switch off the double opt-in for a single submission, so the form’s follow-up actions ran without a confirmed address. This is closed for all form systems. Update recommended.
    • New: every action that runs after a subscriber confirms — the form’s notification mail, the stored entry, and for Elementor each “Actions After Submit” step — is now recorded individually with its outcome. The opt-in detail page shows them in a new “Follow-up actions” panel.
    • New: an action that fails for a temporary reason (mail server unreachable, timeout) is retried automatically after 1, 5 and 30 minutes. Actions that already succeeded are never run again, so a retry does not send a second mail or write a second entry. An action whose outcome is unclear (the connect…
    • New: a “Retry failed actions” button on the opt-in detail page, and a “Follow-ups need attention” filter in the opt-in list. A manual retry starts a fresh set of automatic attempts.
    • New: a Site Health check when follow-up actions keep failing, and entries in the audit log for every attempt.
    • Fix: on Elementor forms the actions after the confirmation could be cut short by a CAPTCHA or honeypot field that was checked a second time, long after the visitor had passed it.
    • Fix: a second click on the confirmation link no longer runs the follow-up actions again.
    • Fix: with debug logging switched on, the log files could be downloaded from the uploads folder. The folder is now protected and the files carry names that cannot be guessed; existing log files are renamed on the next request.
    • Developer: new filter f12_doi_follow_up_backoff and adapter interface for form integrations; Core API 4.4.0 (additive, no breaking change).
  15. Double Opt-In for Contact Form 7 5.5.0

    • An old Pro plugin no longer takes the site down with it
    • Fix: with a Double Opt-In Pro older than 4.0 installed next to the current modules, WordPress failed with “There has been a critical error on this website” — including the admin, so the old plugin could not be deactivated, the licence page could not be opened, and even deleting it from the dashboar…
    • New: a Site Health check naming the outdated Pro plugin, its folder and its version, with a one-click “Deactivate the old plugin now”. It also appears on the dashboard and the plugins screen, where the problem is usually noticed.
    • New: a Site Health check for leftover Pro setup markers. Pro records that it has migrated its licence and installed its modules, and those records survive uninstalling it — so a fresh installation used to find them and skip both steps: no licence, no modules, and the “Install” button on the Add-ons…
    • Note: neither repair deletes anything from your server. Removing the old plugin’s folder stays a manual step over FTP or SSH on purpose — that version’s uninstall routine drops the opt-out database table, and the WordPress delete button would run it.
    • Fix: the “required field” labels in the admin appeared in English on German and French sites, along with 17 other untranslated strings.
    • Improved: the hook reference shipped with the plugin now documents the consent-gate hooks and matches the hooks that actually exist.
  16. Double Opt-In for Contact Form 7 5.4.0

    • The consent checkbox is now enforced everywhere
    • Fix: a consent checkbox configured for an Elementor form was recorded but never required. The visitor could submit without ticking it, and the opt-in was stored with your consent text as proof of an agreement nobody had given. The same gap applied to Contact Form 7 and Avada forms running through t…
    • Change: if the acceptance field you configured is not on the form any more — renamed or deleted in your form builder — the submission is no longer rejected. It is accepted, and the mismatch is reported under Tools > Site Health instead. A settings mistake should not take your registrations offline,…
    • New: a Site Health check listing every form whose acceptance field no longer exists, naming the form and the field. Until now nothing pointed this out unless you happened to open that particular form’s settings.
    • New: filter f12_doi_enforce_consent_gate to switch the rejection off for a single form, and action f12_doi_consent_field_unknown to react to the mismatch yourself.
    • Improved: the warning on the form settings tab now says what actually happens — submissions go through, but without provable consent — instead of promising a rejection. It is also translated again; since 5.3.2 that warning had been showing in English on German and French sites.
  17. Double Opt-In for Contact Form 7 5.3.2

    • Fix: opt-ins collected through an Elementor form always showed “User acknowledged: no” in the consent audit, even when the visitor had ticked the consent checkbox. Elementor stores its submitted fields differently from the other integrations and the audit view did not know that layout, so it looked…
    • Fix: the acceptance field you picked for a form was silently converted to lower case when saved. Any form field whose name contains a capital letter — which Elementor explicitly allows, and which is common on German sites (“Datenschutz”) — therefore stopped matching, the form settings kept warning…
    • Fix: on the integrations that enforce the consent gate, that same conversion meant the configured checkbox was never found at submit time and every registration was rejected as “consent not given”. Those forms accept registrations again.
    • Improved: the warning about a missing acceptance field no longer promises that submissions would be rejected on integrations where the consent gate does not run.
  18. Double Opt-In for Contact Form 7 5.3.1

    • Fix: the opt-out page you selected was discarded when settings were read, so the [doubleoptoutlink] placeholder in confirmation and reminder mails pointed at your front page instead of your consent centre. It now resolves to the page you configured.
  19. Double Opt-In for Contact Form 7 5.1.6

    • PHP 7.4 compatibility:
    • Fix: the plugin declared Requires PHP: 7.4 but shipped PHP 8 syntax (a nullsafe operator and a union return type), which would have caused a fatal error on a PHP 7.4 server. Both are gone — the whole plugin now parses and runs on 7.4.
    • New: minimum-PHP guard. On a server older than PHP 7.4 the plugin stops before loading anything and shows an admin notice, instead of taking the site down with a white screen.
    • Fix: the plugin header was missing Requires at least and Requires PHP entirely, so WordPress could not block activation on an unsupported server. Both are now declared.
    • Maintenance: the build now refuses to package any file that would fail on PHP 7.4, so this class of problem cannot come back unnoticed.
  20. Double Opt-In for Contact Form 7 5.1.5

    • Security & hardening:
    • Fix: the legacy AJAX endpoints (opt-in details, template loader) now require the manage_options capability — not just a nonce — and the privileged nonce is no longer emitted on every wp-admin page.
    • Fix: the consent CSV export neutralises spreadsheet formula injection (values beginning with = + - @).
    • Fix: the visitor IP is resolved from REMOTE_ADDR and only trusts X-Forwarded-For from proxies you configure via the new f12_doi_trusted_proxies filter — this prevents spoofing the opt-in rate limiter and the stored GDPR consent IP.
    • Fix: the form-URL email placeholder is URL-escaped.
    • Maintenance: removed leftover debug logging, added ABSPATH guards to directly-reachable files, and corrected a text domain (wordpress.org compliance).
  21. Double Opt-In for Contact Form 7 5.1.2

    • Email Template Editor fixes:
    • Fix: Centered (and right-aligned) text now keeps its alignment in the actual and test emails. The generator wraps text and footer content in a <div> instead of a <p>, so alignment survives multi-line rich-text content (a block-level tag inside a <p> is invalid HTML and email clients dropped the ali…
    • Fix: The builder no longer shows two “Save” buttons — removed a deprecated legacy editor-bundle enqueue that could mount the editor twice, and hardened the mount path against double-mounting.
    • New: The Social Icons block now has an editable settings panel (network + URL per icon, add/remove, plus icon size, spacing, alignment, and padding).
  22. Double Opt-In for Contact Form 7 5.1.1

    • Improved: Admin menu label renamed from “DOI Admin” to “Double Opt-In”.
    • Improved: Bundle-only licensing polish on the Addons page — a single “Upgrade to Pro” bundle CTA replaces per-addon purchase links, and gated pages no longer show per-module “license required” states (one key unlocks every included module).
    • Maintenance: Excluded a stray TypeScript build-cache file from the distributed plugin.
    • Maintenance: WordPress compatibility updated to 7.0 (“Tested up to”).
  23. Double Opt-In for Contact Form 7 3.7.1

  24. Double Opt-In for Contact Form 7 3.7.0

  25. Double Opt-In for Contact Form 7 3.6.0

  26. Double Opt-In for Contact Form 7 3.5.0

  27. Double Opt-In for Contact Form 7 3.4.0

  28. Double Opt-In for Contact Form 7 3.2.1

20258 releases

  1. Double Opt-In for Contact Form 7 3.1.2

  2. Double Opt-In for Contact Form 7 3.1.0

  3. Double Opt-In for Contact Form 7 3.0.72

  4. Double Opt-In for Contact Form 7 3.0.71

  5. Double Opt-In for Contact Form 7 3.0.70

  6. Double Opt-In for Contact Form 7 3.0.62

  7. Double Opt-In for Contact Form 7 3.0.61

  8. Double Opt-In for Contact Form 7 3.0.60

20246 releases

  1. Double Opt-In for Contact Form 7 3.0.51

  2. Double Opt-In for Contact Form 7 3.0.5

  3. Double Opt-In for Contact Form 7 3.0.3

  4. Double Opt-In for Contact Form 7 3.0.2

  5. Double Opt-In for Contact Form 7 3.0.1

  6. Double Opt-In for Contact Form 7 3.0.0

20234 releases

  1. Double Opt-In for Contact Form 7 2.15

  2. Double Opt-In for Contact Form 7 2.1.5

  3. Double Opt-In for Contact Form 7 2.13

  4. Double Opt-In for Contact Form 7 2.12

20221 release

  1. Double Opt-In for Contact Form 7 2.11

Questions about Double Opt-In for Contact Form 7’s releases

What is the latest version of Double Opt-In for Contact Form 7?

5.14.0, released on Oct 15, 2026 (3 weeks ago). It’s tested up to WordPress 7.1.4 and needs PHP 7.4 or later.

How often is Double Opt-In for Contact Form 7 updated?

28 releases in the last year, about one every 10 days. Its first release on WordPress.org dates from December 2022.

Know when your rivals ship

Track your plugin and its rivals: TrackWP sees each new release in the nightly snapshot and alerts you, with what it did to their rank.

Start free

Release dates come from the day each version’s folder was made in Double Opt-In for Contact Form 7’s WordPress.org SVN repository; the notes from its readme’s changelog, as its authors wrote it.