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

Features — Everything the Plugin Can Do

A full tour of what you get after activation. Each section links to the detailed guide.

Core Protection

FeatureWhat It Does
Cloudflare Turnstile widgetInvisible-by-default CAPTCHA that real users never have to solve
Server-side verificationEvery submit hits Cloudflare's verify API before your form processes
Replay protectionSame token cannot be used twice (5-minute replay window)
Rate limitingAuto-lockout after N failed attempts per IP
Recovery URLOne secret URL clears a stuck IP without DB surgery
Proxy-aware IP detectionReads CF-Connecting-IP and X-Forwarded-For headers
Warn-only modeLog failures without blocking — for staging / soft-launch

Admin Experience

3-step onboarding wizard — first step paste keys

FeatureWhat It Does
3-step onboarding wizardRuns right after activation. Keys → Forms → Done
9 settings tabsOrganized panel: API, General, WC, WC Forms, WP, Design Studio, Conditions, Per-Form, Notifications
Live widget previewDesign Studio renders a real widget as you tweak colors
Test Connection buttonHit Cloudflare from the settings page to verify your keys
Copy shortcode buttonOne-click copy for [wkcft-turnstile]
Plugin status badgesShows Active / Installed / Not Installed for CF7, WPForms, Gravity, etc.
Caching plugin warningsInline notice if WP Rocket, LiteSpeed, Autoptimize, or W3TC is active

Supported Forms

WooCommerce tab — toggle Turnstile on every native WC form

WooCommerce (native)

  • Checkout (classic shortcode + Blocks)
  • Login
  • Registration
  • Lost Password
  • Pay for Order
  • Track Order
  • Product Review

WordPress (native)

  • Login
  • Registration
  • Lost Password
  • Comments

Third-Party Form Plugins

  • Contact Form 7
  • WPForms (free + Pro)
  • Gravity Forms
  • Elementor Pro Forms
  • Formidable Forms
  • Forminator
  • bbPress (topic, reply, signup)
  • BuddyPress (signup, contact)
  • Easy Digital Downloads (EDD checkout)
  • WooCommerce Subscriptions

Full enable/config guide: Supported Forms.

Widget Customization (Design Studio)

Design Studio — live preview of the Cloudflare widget

Design Studio — container controls: background, border, radius, shadow

AreaOptions
Cloudflare nativeTheme (light/dark/auto), Size (normal/compact/flexible), Language (12 locales + auto)
LayoutAlignment (left/center/right), top margin, bottom margin, inner padding
ContainerBackground color, border color, border width (0-8px), border radius (0-32px), shadow (none/subtle/medium/strong)
LabelsOptional text above widget (custom color), optional helper text below (custom color)

Live preview updates in real time. See Design Studio.

Conditional Rules Engine

Skip toggles — bypass CAPTCHA for logged-in users and returning customers:

Conditional Rules — skip toggles

After-N-failures threshold with a rolling failure window:

Conditional Rules — failure threshold

Skip CAPTCHA for the people you trust. Force it for the ones you do not.

RuleBehavior
Skip logged-in usersAuthenticated users bypass CAPTCHA
Skip known customersUsers with at least one completed order bypass
IP allow-listExact IP or CIDR range (IPv4 + IPv6) skip CAPTCHA
IP block-listListed IPs always require CAPTCHA (overrides allow-list)
Country allow-list2-letter ISO codes skip CAPTCHA
Country block-listListed countries always require
After N failuresOnly challenge an IP after N failed attempts
Blocked usernamesUsernames that are always blocked on login
Filter hookwkcft_conditions_should_skip for code overrides

Full table with config examples: Conditional Rules.

Per-Form Configuration

Per-Form Config tab — override theme, size, language, labels per form

Override the global widget settings form by form. Useful when you want:

  • Dark theme on the checkout but light on the login
  • Compact size on a sidebar newsletter
  • French language on one form, English on another
  • Different error message per form

Supported overrides per form: theme, size, language, error message, label text, helper text.

See Per-Form Config.

Analytics Dashboard

Analytics KPI strip — total, passed, blocked, pass rate

Analytics — pass vs block trend chart

Built-in page at WooCommerce → Webkul Addons → Analytics.

PanelContent
KPI cardsTotal checks, passes, failures, pass rate
Trend chartPass vs Block over time (Chart.js, zoom + pan)
Hourly heatmapLast 7 days, darker = more checks
Top formsDonut chart ranking forms by volume
Top blocked IPsRanked list with last-seen timestamp
Error breakdownPie chart of Cloudflare error codes
Recent activityLast 100 log rows
Date range7 / 30 / 90 days / all time
CSV exportStream the raw data

Logs are stored in wp_wkcft_log (IP + UA hash, no PII). Daily purge keeps 90 days by default.

See Analytics.

Notifications

Notifications tab — email digest + webhook alerts

Email Digest

SettingOptions
FrequencyDaily / Weekly / Monthly
RecipientAny email
ContentTotals, pass rate, top 5 forms, top 5 blocked IPs, WoW delta
Test buttonSend sample digest instantly
UnsubscribeOne-click token link in email footer

Webhooks

SettingOptions
Generic webhook URLPOST JSON to any endpoint
Slack webhook URLNative Slack formatting
ThresholdBlocks per hour that trigger an alert (default 50)
ThrottleMin minutes between alerts (default 30)
Test buttonSend sample payload instantly

See Email Digest and Webhooks.

Developer Tools

REST API (namespace /wkcft/v1)

EndpointMethodAuthPurpose
/verifyPOSTPublic + rate-limitedVerify a Turnstile token (for headless/SPA)
/statsGETmanage_woocommerceAggregated analytics
/conditionsGET / POSTmanage_woocommerceRead/write conditions config
/design-studioGET / POSTmanage_woocommerceRead/write design studio config

Filters

FilterDefaultUse
wkcft_should_validatetrueReturn false to skip validation on a form
wkcft_conditions_should_skip(rule result)Final override on the rules engine
wkcft_rate_limit_threshold10Max failures per IP per window
wkcft_rate_limit_window300 (sec)Rate-limit bucket size
wkcft_fail_counter_window1800 (sec)After-N-failures counter window
wkcft_log_enabledtrueReturn false to disable logging

Shortcode

[wkcft-turnstile theme="dark" size="compact" language="en"]

Drop on any page/post/widget. Theme, size, language, class, id, action, appearance all overridable.

See REST API, Filters & Hooks, Shortcode.

Compatibility

ItemSupport
HPOS (Custom Order Tables)Fully declared compatible
Cart/Checkout BlocksFull React widget integration
WooCommerce SubscriptionsOptional handler module
MultisitePer-site settings
Translation-ready.pot template + 4 shipped locales (de_DE, es_ES, fr_FR, pt_BR)
WP Site HealthCustom test: "Cloudflare Turnstile Readiness"
WP-CLIRead/write options via standard wp option commands

See Site Health.

What Is NOT Tracked

  • No cookies from the plugin
  • No visitor IP stored in plain text in analytics (hashed IP only for logs)
  • No user-agent string stored — only a hash
  • No third-party analytics
  • No telemetry back to Webkul

Related Pages

  • Quick Start — Run it in 5 minutes
  • Installation — Full install walkthrough
  • Settings Overview — Tour of all 9 tabs
Prev
Quick Start — Turnstile Live in 5 Minutes
Next
Installation — Full Setup Guide