PluginProbe
Double Opt-In for Contact Form 7 – Secure, GDPR-Compliant Email Verification / 5.13.0
Double Opt-In for Contact Form 7 – Secure, GDPR-Compliant Email Verification v5.13.0
5.12.0 5.13.0 5.13.1 5.11.0 5.10.0 5.9.0 5.8.0 5.8.1 5.7.0 5.6.2 5.6.3 5.6.1 5.6.0 5.5.0 5.4.0 5.3.2 5.3.1 5.1.6 5.1.5 trunk 2.1.5 2.11 2.12 2.13 2.15 All 47 releases
← All changes | CF7DoubleOptIn.class.php +39 -4 5.4.0 → 5.13.0 View file →
@@ -14,9 +14,9 @@
14 14 * Plugin URI: https://www.forge12.com/blog/so-verwendest-du-das-double-opt-in-fuer-contact-form-7/
15 15 * Description: This plugin allows you to add a double OptIn System to your Contact Form 7 & Avada Forms.
16 16 * Text Domain: double-opt-in
17 17 * Domain Path: /languages
18 - * Version: 5.4.0
18 + * Version: 5.13.0
19 19 * Requires at least: 6.0
20 20 * Requires PHP: 7.4
21 21 * Author: Forge12 Interactive GmbH
22 22 * Author URI: https://www.forge12.com
@@ -56,9 +56,9 @@
56 56 return;
57 57 }
58 58
59 59 if ( ! defined( 'FORGE12_OPTIN_VERSION' ) ) {
60 - define( 'FORGE12_OPTIN_VERSION', '5.4.0' );
60 + define( 'FORGE12_OPTIN_VERSION', '5.13.0' );
61 61 }
62 62
63 63 // Addon API version — semver-independent from the plugin's marketing
64 64 // version. Bumped only on breaking changes to the Addon API surface
@@ -64,10 +64,28 @@
64 64 // version. Bumped only on breaking changes to the Addon API surface
65 65 // (AddonInterface, AddonRegistry, AddonLicenseRegistry, FormIntegrationInterface,
66 66 // event payloads). Addons declare their requirement against this constant,
67 67 // not FORGE12_OPTIN_VERSION.
68 + //
69 + // 4.4.0 (additive): FollowUp\FollowUpAdapterInterface, FollowUpCoordinator,
70 + // FollowUpAdapterRegistry. Addons that implement follow-up adapters
71 + // require ^4.4; everything else keeps working against 4.3.
72 + //
73 + // 4.5.0 (additive): AbstractFormIntegration::refusedConsentBeforeSubmit(),
74 + // OptInError::isAlwaysShown()/shouldShowToVisitor(),
75 + // OptInFrontend::getLastCreationError(), ErrorNotification::forget().
76 + // The Elementor, WPForms and Gravity Forms add-ons call them only when they
77 + // exist (method_exists), so their requirement stays ^4.4.
78 + //
79 + // 4.6.0 (additive): Service\ConfirmationMailResender, Service\DoiMailHeaders
80 + // (filter f12_doi_mail_headers), filter f12_doi_submit_notice_data,
81 + // Events\Lifecycle\OptInOptedOutEvent / OptInReOptedInEvent,
82 + // FollowUp\GlobalFollowUpAdapterInterface, OptInStatsRepository::activity(),
83 + // OptInMailStatusRepository::countFailedBetween(). Opt-Out and Reminder use them
84 + // only when they exist (class_exists), so their requirement does not change;
85 + // the Welle-2 add-ons that build on them require ^4.6.
68 86 if ( ! defined( 'F12_DOI_CORE_API_VERSION' ) ) {
69 - define( 'F12_DOI_CORE_API_VERSION', '4.3.0' );
87 + define( 'F12_DOI_CORE_API_VERSION', '4.6.0' );
70 88 }
71 89 if ( ! defined( 'FORGE12_OPTIN_SLUG' ) ) {
72 90 define( 'FORGE12_OPTIN_SLUG', 'f12-cf7-doubleoptin' );
73 91 }
@@ -98,8 +116,11 @@
98 116 require_once 'core/BaseController.class.php';
99 117
100 118 require_once 'OnActivation.php';
101 119 require_once 'OnDeactivation.php';
120 + // OnUpdate runs at include time, before autoload.php is registered
121 + // further down — load the one PSR-4 class it needs explicitly.
122 + require_once 'src/Repository/FollowUpSchema.php';
102 123 require_once 'OnUpdate.php';
103 124 require_once 'compatibility/OptInFrontend.class.php';
104 125 require_once 'core/SpamMechanics.class.php';
105 126
@@ -436,8 +457,17 @@
436 457
437 458 // Register admin REST API and audit services (v4.2.0+)
438 459 $container->addProvider( new \Forge12\DoubleOptIn\Providers\AdminServiceProvider() );
439 460
461 + // Setup wizard (v5.7.0+)
462 + $container->addProvider( new \Forge12\DoubleOptIn\Providers\SetupServiceProvider() );
463 +
464 + // In-plugin help articles (v5.11.0+)
465 + $container->addProvider( new \Forge12\DoubleOptIn\Providers\HelpServiceProvider() );
466 +
467 + // Confirmation mail delivery status (v5.8.0+)
468 + $container->addProvider( new \Forge12\DoubleOptIn\Providers\MailStatusServiceProvider() );
469 +
440 470 // Register licensing registry (v4.3.0+ — entitlement state for paid addons)
441 471 $container->addProvider( new \Forge12\DoubleOptIn\Providers\LicensingServiceProvider() );
442 472
443 473 // Register migration registry (v4.3.0+ — runs pending DB migrations on admin_init)
@@ -442,8 +472,13 @@
442 472
443 473 // Register migration registry (v4.3.0+ — runs pending DB migrations on admin_init)
444 474 $container->addProvider( new \Forge12\DoubleOptIn\Providers\MigrationServiceProvider() );
445 475
476 + // Register follow-up coordinator (v5.6.0+ — status + retry of
477 + // post-confirmation actions). Before AddonServiceProvider so
478 + // the adapter registry exists when the form addons boot.
479 + $container->addProvider( new \Forge12\DoubleOptIn\Providers\FollowUpServiceProvider() );
480 +
446 481 // Register addon system (v4.3.0+ — public Addon API)
447 482 $container->addProvider( new \Forge12\DoubleOptIn\Providers\AddonServiceProvider() );
448 483
449 484 // Register health checks (v5.3.0+ — Site Health surfaces for
@@ -706,9 +741,9 @@
706 741 // Show warning for major/minor version changes
707 742 if ( version_compare( $new_minor, $current_minor, '>' ) ) {
708 743 $upgrade_notice = sprintf(
709 744 '</p><div class="notice inline notice-warning notice-alt" style="margin: 10px 0; padding: 10px; border-left-color: #ffb900;"><p><strong>%s</strong></p><p>%s</p></div><p style="display:none;">',
710 - esc_html__( '⚠️ Important: Major Update – Please backup before updating!', 'double-opt-in' ),
745 + esc_html__( 'Important: Major Update – Please backup before updating!', 'double-opt-in' ),
711 746 esc_html__( 'This version includes significant changes to the form management system, email templates, and database structure. We strongly recommend creating a full site backup before updating.', 'double-opt-in' )
712 747 );
713 748
714 749 echo wp_kses_post( $upgrade_notice );