Version 1.39.1 – 1st May 2026
- ⚙️ FixFixed a potential issue with the Turnstile check on login forms failing in certain cases when it runs multiple checks in the same request.
Version 1.39.0 – 20th April 2026
- ✨ NewAdded integration for the “SureForms” plugin.
- ✨ NewAdded integration for the “Sunshine Photo Cart” plugin (#70).
- 🔨 TweakAdjusted the “Widget Label Text” alignment in some cases so it always shows above the widget.
Version 1.38.4 – 17th April 2026
- ⚙️ FixFixed Turnstile verification failures on WooCommerce checkout caused by payment gateway plugins (e.g. PayPal Commerce, Amazon Pay, Mollie) consuming the single-use token during pre-checkout AJAX validation requests.
- ⚙️ FixFixed a fatal error occurring on pages where WooCommerce has been selectively disabled (e.g. via Plugin Organizer).
Version 1.38.3 – 17th April 2026
- 🔨 TweakMade some tweaks to the WooCommerce checkout duplicate submission check, with a longer expiration for the transient, and improved the auto re-render for Turnstile on payment error in certain cases.
- 🔨 TweakSmall tweak to the Contact Form 7 integration code with a basic static duplication check.
Version 1.38.2 – 16th April 2026
- 🔨 TweakAdded the transient based duplicate submission check to WooCommerce checkout, to prevent potential duplicate submission check failing issues since the last update.
- 🔨 TweakAdded improved support for Gravity Forms multi-page forms, to prevent the duplicate submission check from failing on page 2 and beyond.
Version 1.38.1 – 13th April 2026
- 🔨 TweakReplaced all PHP session usage with WordPress transients for the duplicate submission checks, to prevent full-page caching from being broken by the PHPSESSID cookie and Cache-Control headers.
- 🔨 TweakAn invalid-input-secret error from Cloudflare no longer disables Turnstile on all forms. Instead, the admin is notified and a soft re-test prompt is displayed on the settings page.
- 🔒 SecurityFixed a broken authentication vulnerability on WooCommerce checkout potentially allowing one successful Turnstile submission to be reused for multiple checks. (Reported by David Marín via Patchstack.)
Version 1.38.0 – 6th April 2026
- ✨ NewAdded a “Refresh Timeout” option to the advanced settings.
- 🚀 PerfThe Cloudflare health check (used by failover mode) is now cached for 2 minutes, preventing repeated HTTP requests on every form render.
- 🔨 TweakAdded missing WooCommerce ‘cart_checkout_blocks’ and ‘product_block_editor’ feature compatibility declarations.
- ⚙️ FixFixed a text domain typo in the WooCommerce Store API integration.
- ⚙️ FixImproved the WP Discuz integration to properly validate and block submissions when the Turnstile check fails, and now honors the whitelist.
- ⚙️ FixFixed an issue with Turnstile not loading on Elementor popup forms in some cases.
- ⚙️ FixThe disable submit option should now work correctly on Elementor forms.
- ⚙️ FixThe disable submit option should now work correctly on Contact Form 7 forms.
- ⚙️ FixFix for WooCommerce block checkout sometimes rendering the Turnstile widget twice.
- ⚙️ FixFixed a “Invalid type for container” JavaScript error with the wpDiscuz integration.
- ⚙️ FixFixed the right alignment styling for bbpress.
- ⚙️ FixFixed an issue where Turnstile widgets would repeatedly render when a browser tab is left open for extended periods.
- ⚙️ FixFixed an issue where CF7 forms would show “One or more fields have an error” when SCT is active but the form doesn’t use the SCT turnstile shortcode.
- ⚙️ FixFixed an issue with scripts not being enqueued properly in some cases.
- 🛠️ DevFixed the missing prefix for the add_data_attribute function.
- 🛠️ DevChanged all include() calls to include_once() to prevent fatal errors if the plugin file is loaded more than once.
- 🛠️ DevFixed cfturnstile_check() returning false instead of array( ‘success’ => false ) when API keys are not set.
- 🔒 SecurityMade a few small precautionary security enhancements (missing ABSPATH check, and sanitized REQUEST_URI).
Version 1.37.0 – 12th January 2026
- Improvement: Improved the Elementor integration to work better in more cases, and with Elementor popups.
- Improvement: Added an alignment option for the Elementor integration.
- 🔨 TweakRemoved the “Integration Method” option for Elementor forms. It will now load globally but has an option to choose where scripts are loaded.
- 🔨 TweakSmall tweaks to the settings page.
- 🔨 TweakAdded a copy button for the debug log.
- ⚙️ FixFixed a new issue some websites were experiencing with WooCommerce block checkout not working with Turnstile.
- ⚙️ FixFixed an error “attempt to read property success on null” showing in some cases.
- ⚙️ FixFixed the widget label not showing in some cases, on the comments form.
- ⚙️ FixFixed WooCommerce checkout in some cases not re-rendering Turnstile after payment errors. It should now re-render correctly in all cases to prevent Turnstile errors.
- ⚙️ FixFixed an issue with Forminator forms when using file upload fields.
Version 1.36.1 – 31st December 2025
- ⚙️ FixFixed an issue with the disable submit feature not working in some cases.
Version 1.36.0 – 30th December 2025
- ✨ NewAdded new “Failsafe Mode” option in the advanced settings.
- ✨ NewAdded the ability to enable and set a custom “widget label text” that is shown above the Turnstile widget.
- ✨ NewAdded an option to enable “Resource Hint (Preconnect)” in the advanced settings.
- 🔨 TweakImproved the code for getting the user IP address for the Turnstile verification request. Helps with certain server setups and proxy services.
- 🔨 TweakChanged Turnstile default render to “auto” instead of “explicit”.
- 🔨 TweakRemoved the user ID check on WordPress login Turnstile check, so it still runs if the username is invalid.
- 🔨 TweakAdded “header” info to the debug log entries.
- ⚙️ FixFixed an issue with Kadence Forms integration in some cases.
Version 1.35.0 – 27th October 2025
- ✨ NewImprovement to Elementor integration to work better with Elementor element caching.
- ✨ NewAdded new “Integration Method” for the Elementor integration. The “Load Scripts Globally” option may work better for certain types of caching.
- 🔨 TweakUpdated the Elementor JS code from using jQuery to vanilla JS.
- 🔨 TweakAdded an option in the “Advanced Settings” to toggle “Performance Plugin Compatibility”.
- 🔨 TweakUltimate Member forms now have a unique fixed ID instead of a random one each time.
- 🔨 TweakFor WooCommerce checkout, added an alternative check for duplicate execution within a single request.
- 🔨 TweakMade some changes to the settings page, updated the setup guide link, and updated donation/sponsor details.
- ⚙️ FixFixed an issue with Turnstile being ignored by certain payment methods like PayPal express, in some cases.
- ⚙️ FixFixed an issue when the “WordPress Login” option is enabled, but “WooCommerce Login” is disabled, the WooCommerce login still gave a verification failed error.
Version 1.34.3 – 16th October 2025
- ⚙️ FixFixed an issue with some express payment methods. These will now automatically skip the Turnstile check preventing the error message from showing.
Version 1.34.2 – 15th October 2025
- ⚙️ FixFixed an issue with WooCommerce checkout in some cases.
Version 1.34.1 – 10th October 2025
- ⚙️ FixFixed an issue with custom login forms causing an error since version 1.34.0.
- ⚙️ FixFixed an issue with the “Extra Failure Message” when using quotes in the text.
Version 1.34.0 – 9th October 2025
- ✨ NewAdded ability to define the Site Key and Secret Key in the wp-config.php file, using the constants “CF_TURNSTILE_SITE_KEY” and “CF_TURNSTILE_SECRET_KEY”. This is useful for developers, or if you want to prevent the keys from being changed in the admin settings page.
- ✨ NewAdded an export/import tool to the settings page, to allow you to easily export your settings and import them on another website.
- 🔨 TweakUpdated the WooCommerce checkout “cfturnstile_checkout_checked” session to clear in more cases to prevent potential issues.
- ⚙️ FixAdded better support for smart payment buttons on WooCommerce checkout, to prevent Turnstile from blocking the checkout in some cases.
- ⚙️ FixFixed an issue with the “Pay for Order” page when using block checkout.
- ⚙️ FixFixed an issue with the wp_login_form() function integration.
Version 1.33.1 – 5th September 2025
- OtherRenamed the plugin from “Simple Cloudflare Turnstile” to “Simple CAPTCHA Alternative with Cloudflare Turnstile” due to trademark guidelines.
Version 1.33.0 – 4th September 2025
- 🔨 TweakAdded some better compatibility with certain performance plugins that may be minifying/delaying JavaScript and causing issues with Turnstile loading.
- ⚙️ FixPotential fix for some websites experiencing issues with Elementor forms.
Version 1.32.3 – 21st August 2025
- ⚙️ FixFixed an issue with the CheckoutWC integration.
Version 1.32.2 – 7th August 2025
- ⚙️ FixFixed an issue with the Turnstile widget on Elementor forms always being forced to dark mode.
- ⚙️ FixFixed an issue with Turnstile rendering twice on CheckoutWC checkout page in some cases.
Version 1.32.1 – 7th August 2025
- Improvement: Improved the CheckoutWC integration (#53).
- 🔨 TweakAdded missing MailPoet JS callback for the disable submit button.
- ⚙️ FixFixed a error in the woocommerce.js file.
