PluginProbe
Double Opt-In for Contact Form 7 – Secure, GDPR-Compliant Email Verification / 5.8.1
Double Opt-In for Contact Form 7 – Secure, GDPR-Compliant Email Verification v5.8.1
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 3.0.0 3.0.1 3.0.2 3.0.3 3.0.5 3.0.51 All 41 releases
← All changes | CF7DoubleOptIn.class.php +36 -4 5.3.1 → 5.8.1 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.3.1
18 + * Version: 5.8.1
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.3.1' );
60 + define( 'FORGE12_OPTIN_VERSION', '5.8.1' );
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,14 @@
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 + // Confirmation mail delivery status (v5.8.0+)
465 + $container->addProvider( new \Forge12\DoubleOptIn\Providers\MailStatusServiceProvider() );
466 +
440 467 // Register licensing registry (v4.3.0+ — entitlement state for paid addons)
441 468 $container->addProvider( new \Forge12\DoubleOptIn\Providers\LicensingServiceProvider() );
442 469
443 470 // Register migration registry (v4.3.0+ — runs pending DB migrations on admin_init)
@@ -442,8 +469,13 @@
442 469
443 470 // Register migration registry (v4.3.0+ — runs pending DB migrations on admin_init)
444 471 $container->addProvider( new \Forge12\DoubleOptIn\Providers\MigrationServiceProvider() );
445 472
473 + // Register follow-up coordinator (v5.6.0+ — status + retry of
474 + // post-confirmation actions). Before AddonServiceProvider so
475 + // the adapter registry exists when the form addons boot.
476 + $container->addProvider( new \Forge12\DoubleOptIn\Providers\FollowUpServiceProvider() );
477 +
446 478 // Register addon system (v4.3.0+ — public Addon API)
447 479 $container->addProvider( new \Forge12\DoubleOptIn\Providers\AddonServiceProvider() );
448 480
449 481 // Register health checks (v5.3.0+ — Site Health surfaces for
@@ -706,9 +738,9 @@
706 738 // Show warning for major/minor version changes
707 739 if ( version_compare( $new_minor, $current_minor, '>' ) ) {
708 740 $upgrade_notice = sprintf(
709 741 '</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' ),
742 + esc_html__( 'Important: Major Update – Please backup before updating!', 'double-opt-in' ),
711 743 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 744 );
713 745
714 746 echo wp_kses_post( $upgrade_notice );