Turnstile CAPTCHA For WooCommerceTurnstile CAPTCHA For WooCommerce
Buy Now
View Demo
  • Getting Started

    • Introduction
    • Quick Start
    • Features
    • Installation
    • First-Time Setup
    • Get Turnstile Keys
    • Onboarding Wizard
  • Settings

    • Settings Overview
    • API Settings
    • General
    • Design Studio
    • Conditional Rules
    • Per-Form Config
    • Notifications
  • Supported Forms

    • All Supported Forms
    • WooCommerce Forms
    • WordPress Forms
    • Third-Party Form Plugins
    • Checkout Blocks
    • Shortcode
  • Protection & Monitoring

    • Analytics Dashboard
    • Rate Limiting
    • Recovery URL
    • Email Digest
    • Webhooks
  • Developer

    • REST API
    • Filters & Hooks
    • Site Health
  • Compare

    • vs reCAPTCHA
    • vs hCaptcha
  • Help

    • Troubleshooting
    • FAQ
    • Glossary
Support
Buy Now
View Demo
  • Getting Started

    • Introduction
    • Quick Start
    • Features
    • Installation
    • First-Time Setup
    • Get Turnstile Keys
    • Onboarding Wizard
  • Settings

    • Settings Overview
    • API Settings
    • General
    • Design Studio
    • Conditional Rules
    • Per-Form Config
    • Notifications
  • Supported Forms

    • All Supported Forms
    • WooCommerce Forms
    • WordPress Forms
    • Third-Party Form Plugins
    • Checkout Blocks
    • Shortcode
  • Protection & Monitoring

    • Analytics Dashboard
    • Rate Limiting
    • Recovery URL
    • Email Digest
    • Webhooks
  • Developer

    • REST API
    • Filters & Hooks
    • Site Health
  • Compare

    • vs reCAPTCHA
    • vs hCaptcha
  • Help

    • Troubleshooting
    • FAQ
    • Glossary
Support
  • Getting Started

    • Introduction
    • Quick Start — Turnstile Live in 5 Minutes
    • Features — Everything the Plugin Can Do
    • Installation — Full Setup Guide
    • First-Time Setup
    • Get Turnstile Keys from Cloudflare
    • Onboarding Wizard
  • Settings

    • Settings Overview — All 9 Tabs
    • API Settings Tab
    • General Settings Tab
    • Design Studio Tab
    • Conditional Rules Tab
    • Per-Form Config Tab
    • Notifications Tab
  • Supported Forms

    • All Supported Forms
    • WooCommerce Forms
    • WordPress Forms
    • Third-Party Form Plugins
    • Checkout Blocks Integration
    • Shortcode — Drop the Widget Anywhere
  • Protection & Monitoring

    • Analytics Dashboard
    • Rate Limiting — Auto-Lockout for Abusive IPs
    • Recovery URL — Unlock a Stuck IP
    • Email Digest
    • Webhooks — Real-Time Alerts on Bot Spikes
  • Developer

    • REST API
    • Filters & Hooks
    • Site Health Integration
  • Compare

    • Turnstile vs Google reCAPTCHA
    • Turnstile vs hCaptcha
  • Help

    • Troubleshooting
    • Frequently Asked Questions
    • Glossary

Third-Party Form Plugins

WooCommerce Forms tab — one checkbox per supported third-party form plugin

Turnstile integrates with every major WordPress form and membership plugin. Enable each with a single checkbox.

Settings tab: wp-admin/admin.php?page=wkcft-settings&tab=wkcft_woocommerce_form

Supported Plugins

PluginEnable OptionPlugin Class Detected
Contact Form 7wkcft_cf7WPCF7
WPFormswkcft_wpformsWPForms or wpforms() function
Gravity Formswkcft_gravityformsGFCommon
Elementor Pro Formswkcft_elementorElementorPro
Formidable Formswkcft_formidableFrmAppHelper
Forminatorwkcft_forminatorForminator
bbPresswkcft_bbpressbbPress
BuddyPresswkcft_buddypressBuddyPress
Easy Digital Downloadswkcft_eddEasy_Digital_Downloads
WooCommerce Subscriptionswkcft_subscriptionsWC_Subscriptions

Status Badges

Each row shows a badge telling you whether the plugin is present:

BadgeMeaningCheckbox
Active (green)Plugin installed + activatedEnabled
Installed (yellow)Plugin present but not activeDisabled — click Activate
Not installed (gray)Plugin not presentDisabled — click Install

Contact Form 7

  • Enable: Tick Contact Form 7 on the tab
  • Method: Plugin uses the [cf7-turnstile] shortcode
  • Placement: Add the shortcode to any CF7 form at the position you want the widget

Example CF7 form:

<label>Your name *
  [text* your-name] </label>

<label>Your email *
  [email* your-email] </label>

[cf7-turnstile]

[submit "Send"]

Validation runs server-side via CF7's custom validation API. If the token fails, CF7 shows your configured error message and keeps the form data.

WPForms

  • Enable: Tick WPForms on the tab
  • Auto-injection: Widget auto-injects above the submit button on every WPForms form

Works with: WPForms Lite (free) and WPForms Pro.

No shortcode needed — the plugin hooks into wpforms_frontend_output and injects the widget automatically.

Skip Specific WPForms

If you want to exempt one specific form (e.g., an internal support form), use the filter:

add_filter('wkcft_conditions_should_skip', function($skip, $context) {
    if ($context === 'wpforms' && isset($_POST['wpforms']['id']) && $_POST['wpforms']['id'] == 42) {
        return true;
    }
    return $skip;
}, 10, 2);

Gravity Forms

  • Enable: Tick Gravity Forms on the tab
  • Auto-injection: Widget appears on every Gravity form

Plugin hooks into gform_submit_button filter.

Skip a Specific Gravity Form

Use the same filter pattern as WPForms, checking $_POST['gform_submit'] for the form ID.

Elementor Pro Forms

  • Enable: Tick Elementor on the tab
  • Requires: Elementor Pro (free Elementor does not include Forms)
  • Auto-injection: Widget added before the submit button on every Elementor Pro form

Formidable Forms

  • Enable: Tick Formidable Forms on the tab
  • Auto-injection: Widget injected before the submit on all Formidable forms

Plugin hooks into frm_after_submit_button.

Forminator

  • Enable: Tick Forminator on the tab
  • Auto-injection: Widget added to every Forminator form

Forminator fires AJAX submits — the plugin validates on forminator_custom_form_after_handle_submit.

bbPress

  • Enable: Tick bbPress on the tab
  • Protected: Topic creation, reply, user registration, forum signup
  • Auto-injection: Widget appears on each bbPress form

BuddyPress

  • Enable: Tick BuddyPress on the tab
  • Protected: Signup page, contact forms, group signup
  • Auto-injection: Widget appears on BuddyPress registration forms

Easy Digital Downloads (EDD)

  • Enable: Tick Easy Digital Downloads on the tab
  • Protected: Checkout, login, register, lost password on the EDD /checkout/ page
  • Auto-injection: Widget appears before payment method selection

WooCommerce Subscriptions

  • Enable: Tick WooCommerce Subscriptions on the tab
  • Protected: Subscription renewal payment pages, subscription management forms

Enable Steps (Same Pattern for Every Plugin)

  1. Install + activate the third-party plugin
  2. WooCommerce → Turnstile Settings → WooCommerce Forms tab
  3. Badge should read Active
  4. Tick the plugin's checkbox
  5. Save Changes
  6. Flush caching plugin
  7. Test a form in the third-party plugin

Field Reference

PluginOption KeyDefault
Contact Form 7wkcft_cf7no
WPFormswkcft_wpformsno
Gravity Formswkcft_gravityformsno
Elementorwkcft_elementorno
Formidablewkcft_formidableno
Forminatorwkcft_forminatorno
bbPresswkcft_bbpressno
BuddyPresswkcft_buddypressno
EDDwkcft_eddno
WC Subscriptionswkcft_subscriptionsno

Interaction With Conditional Rules

All rules on Conditional Rules apply to third-party forms too. You can:

  • Skip CAPTCHA on a specific CF7 form via the filter
  • Whitelist IPs — works for every form type
  • Skip logged-in — applies globally including forums and downloads

Troubleshooting

ProblemFix
Widget shows on CF7 but form still submits without itYou forgot to add [cf7-turnstile] shortcode to that form
WPForms widget appears twiceThe caching plugin served a stale page. Flush cache, hard refresh
Gravity Forms "invalid token"Replay protection — you reloaded the cached form. Clear caching plugin
Elementor widget missingYou are using free Elementor. Pro is required
bbPress widget breaks layoutAdd CSS in your theme: .bbp-form .wkcft-turnstile { margin: 10px 0 }
EDD checkout widget in wrong spotAdd CSS overrides in your theme targeting .wkcft-turnstile to reposition

Related Pages

  • Supported Forms — Full list with slugs
  • Shortcode — For any form not listed here
  • Conditional Rules — Skip rules per context
  • Filters & Hooks — Code-level customization
Prev
WordPress Forms
Next
Checkout Blocks Integration