WordPress maintenance or security needs? Reach out!
TLDWP

Plugin: kitgenix-captcha-for-cloudflare-turnstile (Used by 254 domains)

Kitgenix CAPTCHA for Cloudflare Turnstile

πŸ‘€ Kitgenix πŸ”— Plugin Homepage

Spam is expensive: it wastes time, clogs inboxes, creates fake accounts, and on stores it can lead to abandoned checkout noise and fraudulent activity. Traditional CAPTCHA solutions can also hurt conversions by adding friction.

Cloudflare Turnstile is a modern, privacy-first CAPTCHA alternative designed to reduce friction for real people while still blocking bots.

Kitgenix CAPTCHA for Cloudflare Turnstile is a production-ready Turnstile integration for WordPress that focuses on reliability in real-world setups:
– Server-side token verification (using Cloudflare’s official endpoint)
– Fast, conditional loading (only where needed)
– Support for dynamic/AJAX forms and modern WooCommerce Blocks / Store API checkout
– Security features: replay protection, proxy-aware IP handling, whitelisting, and developer mode (warn-only)

You can enable/disable each integration (and many per-form toggles), choose auto-injection vs shortcode-only placement, customise display and messaging, and use built-in diagnostics and Site Health checks to troubleshoot.

Supported integrations (where Turnstile can be added)

All integrations are enable-able from settings. Many also support Mode: Auto vs Shortcode.

WordPress Core
– Login
– Registration
– Lost password
– Reset password
– Comments (standard WordPress comment forms, including safe handling for comment failures/redirects)

WooCommerce (Classic)
– Checkout
– Product reviews
– My Account login
– My Account registration
– Lost password

WooCommerce Blocks (Store API / Block Checkout)
– UI rendering inside block-based checkout
– Adds token to Store API requests (header and/or extensions payload when available)
– Server-side validation of Store API checkout requests
– Supports β€œshortcode-only mode” behaviour so you can control placement

Easy Digital Downloads (EDD)
– Checkout
– Login
– Register
– Profile editor

Form plugins
– Contact Form 7 (CF7)
– WPForms
– Fluent Forms
– Formidable Forms
– Forminator
– Gravity Forms
– JetFormBuilder
– Jetpack Forms
– Kadence Forms
– Elementor Forms (including popups and AJAX submissions)

Community / forums
– bbPress (topic/reply flows where applicable)
– BuddyPress (flows where applicable)

Core features (site-wide)

Turnstile widget rendering
– Uses Cloudflare’s official Turnstile API script
– Widget options:
– Theme: auto / light / dark
– Size: small / medium / large / normal / flexible
– Appearance: stored as Turnstile β€œappearance” option (defaults to always)
– Language: auto or explicit locale (passed via hl=...)

Settings & admin experience
– Settings page under the shared Kitgenix WP admin menu
– Live β€œtest widget” preview on the settings screen (renders when a Site Key is present)
– Site Key + Secret Key storage (secret not printed in HTML by default)
– β€œReveal secret key” (admins only, nonce-protected AJAX action)

Messaging & UX
– Custom error message (admin-configurable, used across integrations)
– Extra message text (optional text displayed alongside/under the widget)
– β€œDisable submit until completed” option (frontend behaviour via plugin JS)

Replay protection (enabled by default)
– Detects re-used tokens (hash stored in transients) and blocks replays
– TTL is filterable
– Stores hashed token markers under the transient prefix kitgenix_captcha_for_cloudflare_turnstile_ts_
– Sets a short-lived cookie (kitgenix_captcha_for_cloudflare_turnstile_ts_replay, ~120s) when replay is detected (for frontend behaviour/messages)
– Dedicated replay message (filterable)

Developer mode (warn-only)
– Verification failures do not block submissions
– Failures are logged (and emitted via a developer log action)
– Optional inline warning annotation for admins (frontend config)

Whitelisting (skip Turnstile + skip loading API script)
– Whitelist logged-in users
– Whitelist by IP (exact, wildcards, CIDR β€” including IPv6)
– Whitelist by User-Agent (substring or wildcard matching)
– Filter hook to override whitelist decision

Proxy / real-IP handling
– Optional trust of proxy headers (Cloudflare / X-Forwarded-For style)
– Trusted proxy IP list / trust controls
– Forwarded headers are only honoured when the request originates from a trusted proxy

Performance & resilience
– Conditional script loading only where needed
– Async/strategy-based script loading (depending on WP version)
– Adds resource hints (preconnect / dns-prefetch) for Turnstile domain
– Detects duplicate Turnstile API loaders (if another plugin/theme enqueues api.js):
– Stores detection in the transient kitgenix_turnstile_duplicate_scripts
– Shows admin notice on settings and Plugins screen
– Includes dismiss link (nonce-protected, uses kitgenix_captcha_for_cloudflare_turnstile_ts_dismiss_dupe=1)

Site Health + diagnostics
– Adds a Site Health test: β€œCloudflare Turnstile readiness”
– Checks:
– Keys present
– Duplicate API loader transient (kitgenix_turnstile_duplicate_scripts)
– Last verification success/failure snapshot
– Heuristic warning if common optimisation/caching plugins are active
– Stores the last verify outcome (success, time, error codes) for Site Health display
– Tracks privacy-safe counters in kitgenix_captcha_for_cloudflare_turnstile_metrics (checks total/passed/failed)

Manual placement (shortcode)

If you have a custom form or an unsupported plugin, you can manually render the widget:

[kitgenix_turnstile]

Shortcode output includes:
– a nonce field
– a hidden cf-turnstile-response input
– the widget container (with data-sitekey)
– support for passing arbitrary attributes via shortcode attributes

Many supported integrations also offer Shortcode-only mode (you place the shortcode where you want; the plugin validates server-side without auto-injection).

Quick Start

  1. Install and activate the plugin.
  2. Open the Turnstile settings under the Kitgenix hub in wp-admin.
  3. Add your Cloudflare Turnstile Site Key and Secret Key.
  4. Configure widget options (theme/size/appearance/language) and messaging if needed.
  5. Enable the integrations (and per-form toggles) you want.
  6. Save, then test the key user journeys: login, registration, checkout, and your main contact form.

Tip: Start with Developer mode (warn-only) on staging or during rollout. Once you’re satisfied, disable warn-only to enforce blocking.

Performance and caching notes (important for stores)

Turnstile is lightweight, but aggressive optimisation can break rendering or token freshness.

If you use caching/optimisation plugins:
– Allowlist https://challenges.cloudflare.com
– Avoid full-page caching on login/account/checkout pages
– Avoid combining/inlining the Turnstile loader
– Avoid heavily delaying Elementor/form plugin scripts
– Ensure outbound HTTP requests to Cloudflare are not blocked (needed for server-side verification)

Settings Overview

Main settings:
– Site Key
– Secret Key (with β€œsecret present” state, clear/reveal)
– Theme (auto/light/dark)
– Size (small/medium/large/normal/flexible)
– Appearance (Turnstile appearance option)
– Language (auto or specific locale)
– Disable submit until completed
– Custom error message
– Extra message text

Security & advanced:
– Replay protection (on/off)
– Developer mode (warn-only)
– Whitelist logged-in users
– Whitelist IPs (wildcards/CIDR, including IPv6)
– Whitelist user agents
– Proxy trust (enable/disable)
– Trusted proxy IPs / trust controls

Integrations (enable + per-form toggles where available):
– WordPress Core (login/register/lost password/reset password/standard comments)
– WooCommerce (checkout/product reviews/login/register/lost password)
– WooCommerce Blocks mode (auto vs shortcode-only)
– Easy Digital Downloads (checkout/login/register/profile)
– Contact Form 7
– WPForms
– Fluent Forms
– Formidable Forms
– Forminator
– Gravity Forms
– Jetpack Forms
– Kadence Forms
– Elementor Forms
– bbPress
– BuddyPress

Developers

Shortcode:
[kitgenix_turnstile]

Server-side verification endpoint:
https://challenges.cloudflare.com/turnstile/v0/siteverify

Filters (script/loading):
– kitgenix_captcha_for_cloudflare_turnstile_script_url( $url, $settings )
– kitgenix_turnstile_freshness_ms
– kitgenix_turnstile_inline_style

Filters (verification / request handling):
– kitgenix_turnstile_siteverify_url
– kitgenix_turnstile_siteverify_timeout
– kitgenix_turnstile_siteverify_sslverify
– kitgenix_turnstile_siteverify_http_args
– kitgenix_turnstile_send_remoteip
– kitgenix_turnstile_remote_ip
– kitgenix_turnstile_token_from_request
– kitgenix_turnstile_handle_comment_form
– kitgenix_turnstile_error_codes
– kitgenix_turnstile_error_message
– kitgenix_turnstile_replay_message
– kitgenix_captcha_for_cloudflare_turnstile_{context}_turnstile_error_message

Filters (replay protection):
– kitgenix_turnstile_replay_ttl

Filters (whitelist / proxy trust):
– kitgenix_turnstile_is_whitelisted( $is_whitelisted, $details )
– kitgenix_turnstile_trust_headers
– kitgenix_turnstile_trusted_proxies

Internal identifiers (options / transients / cookies / meta):
– Option: kitgenix_captcha_for_cloudflare_turnstile_settings
– Settings group (Settings API): kitgenix_captcha_for_cloudflare_turnstile_settings_group
– Option: kitgenix_captcha_for_cloudflare_turnstile_metrics
– Option: kitgenix_turnstile_last_verify
– Transient: kitgenix_captcha_for_cloudflare_turnstile_do_activation_redirect
– Transient: kitgenix_turnstile_duplicate_scripts
– Transient prefix (replay protection): kitgenix_captcha_for_cloudflare_turnstile_ts_
– Cookie (replay notice): kitgenix_captcha_for_cloudflare_turnstile_ts_replay
– WooCommerce order meta (Blocks/Store API verification): _kitgenix_turnstile_verified

Internal nonces / actions:
– Shortcode/form nonce field name: kitgenix_captcha_for_cloudflare_turnstile_nonce
– Shortcode/form nonce action: kitgenix_captcha_for_cloudflare_turnstile_action
– Settings save nonce field name: kitgenix_captcha_for_cloudflare_turnstile_settings_nonce
– Settings save nonce action: kitgenix_captcha_for_cloudflare_turnstile_settings_save
– Admin AJAX action (reveal saved secret): kitgenix_turnstile_get_secret (WordPress hook: wp_ajax_kitgenix_turnstile_get_secret)
– Admin AJAX nonce action (reveal saved secret): kitgenix_turnstile_reveal_secret
– Duplicate-loader notice dismiss query arg: kitgenix_captcha_for_cloudflare_turnstile_ts_dismiss_dupe
– Duplicate-loader notice dismiss nonce action: kitgenix_captcha_for_cloudflare_turnstile_ts_dismiss

Actions (developer logging):
– kitgenix_turnstile_dev_log

External Services

This plugin uses Cloudflare Turnstile to verify requests and prevent spam and abuse.

The plugin may:
– Load the Turnstile script:
https://challenges.cloudflare.com/turnstile/v0/api.js
– Submit verification requests server-side to:
https://challenges.cloudflare.com/turnstile/v0/siteverify

When verification is enabled, the plugin sends to Cloudflare:
– Your Turnstile secret key
– The Turnstile response token
– The visitor IP address (as the optional remoteip parameter, when enabled)

The plugin does not send the visitor’s browser user agent to Cloudflare as part of the verification payload (the HTTP request itself is made server-side by WordPress).

If proxy trust is enabled, the plugin may read forwarding headers (e.g. CF-Connecting-IP, X-Forwarded-For) to determine the client IP, but only when requests originate from configured trusted proxies.

The plugin does not add tracking cookies itself and does not sell or share personal data.

Cloudflare Turnstile Terms: https://developers.cloudflare.com/turnstile/
Cloudflare Privacy Policy: https://www.cloudflare.com/privacypolicy/

This plugin also includes a shared β€œKitgenix hub” component in wp-admin which may fetch publicly available plugin metadata from WordPress.org using the WordPress core plugins_api() function (WordPress.org Plugins API).

  • When it runs: only in wp-admin (Kitgenix plugin admin pages)
  • Data sent: plugin slug(s) (no personal data)
  • Data received: publicly available plugin information (e.g. active installs, ratings)
  • Caching: responses are cached locally using transients for ~1 day:
    • kitgenix_hub_wporg_active_installs_v1
    • kitgenix_hub_wporg_ratings_v1

Trademark Notice

β€œCloudflare” and the Cloudflare logo are trademarks of Cloudflare, Inc. This plugin is not affiliated with or endorsed by Cloudflare, Inc.

Support Development

If this plugin helps keep spam away without slowing your site down, you can support ongoing development here:
https://donate.stripe.com/9B65kDgG3fTQ2Kzcmwf7i00

Credits

Built with ❀︎ by @kitgenix – https://kitgenix.com

DomainExposuresHeadersLast Checked
h*r*m*n*-*r*n*e*v*c*.de (WP 7.0) F Aug 24, 2026
r*i*n*t*.consulting (WP 7.1) D Aug 24, 2026
j*n*k*r*z.com F Aug 24, 2026
e*g*a*d*a*s*l.com F Aug 24, 2026
s*i*s*i*l*l*c.com C Aug 23, 2026
4*e*s*o*l*.eu F Aug 23, 2026
c*a*i*m*s*s*e.gr (WP 7.1) F Aug 23, 2026
p*o*a*s*l.com D Aug 22, 2026
w*b*o*g*o*s.com D Aug 22, 2026
s*a*i*g*y*e*f*c*.com (WP 7.1) F Aug 22, 2026
e*o*r*e*b*l*v*a.com D Aug 22, 2026
b*e*v*n*.com F Aug 22, 2026
t*e*e*s*l*s*t.com (WP 7.0.4) D Aug 22, 2026
b*c*e*t*i*s.com (WP 6.2.11) F Aug 21, 2026
b*c*e*b*x.com (WP 6.2.11) F Aug 21, 2026
c*a*u*a.com (WP 7.0.4) D Aug 21, 2026
c*n*e*e*c*s*i*s*n*e*i*n.com (WP 7.1) F Aug 21, 2026
c*n*e*e*c*s*p*l*e*-*e*i*n.com (WP 7.1) F Aug 21, 2026
b*a*h*i*i*s*o*k*l*b.com F Aug 20, 2026
m*p*n*.com (WP 7.1) F Aug 20, 2026
t*n*e*t*e*l*.com (WP 7.0.4) B Aug 20, 2026
c*m*o*e*s*a*.com (WP 7.1) F Aug 20, 2026
v*r*u*s*.fr F Aug 20, 2026
s*l*c*w*l*n*s*.au (WP 7.0.4) F Aug 20, 2026
l*g*n*s*f*h*c*l*i*h*r*.com A Aug 20, 2026
e*g*e*o*m*n*u*a*i*n.com F Aug 19, 2026
e*m*s*s*l.com (WP 7.0.4) F Aug 19, 2026
m*z*k*c*f*o*a.pl (WP 7.0.4) F Aug 19, 2026
c*m*p*l*r*s.com F Aug 19, 2026
m*s*s*o*l*c*i*n*f*c*a*.com (WP 7.0.4) F Aug 19, 2026
a*l*h*g*n*e*s.org D Aug 19, 2026
g*t*a*r*e*i*a*o*e*.com (WP 7.0.4) B Aug 18, 2026
r*c*s*g*r*a*y.gr (WP 7.0.4) F Aug 18, 2026
a*n*p*t*s*a*a.org (WP 6.9.5) F Aug 18, 2026
b*r*r*s*n*t*c*.com F Aug 17, 2026
b*r*o*o*n*r.com A Aug 17, 2026
g*e*n*t*e*t*e*v*c*s.com F Aug 17, 2026
d*3.mx (WP 7.0.4) F Aug 17, 2026
b*r*a*a*c*n*o*.com A Aug 17, 2026
b*r*a*a*n*t*o*.com A Aug 17, 2026
b*r*a*a*a*r*l*r*b*r*s.com A Aug 17, 2026
a*w*r*.com (WP 6.2.11) F Aug 17, 2026
j*c*u*t*e*p*b*i*a*i*n*.com A Aug 16, 2026
m*u*a*k*i*j*.com (WP 7.0.4) F Aug 16, 2026
s*n*a*o*i*a*o*k*u*i*c*u*.com A Aug 16, 2026
i*t*o*a*r.com (WP 7.0.4) F Aug 16, 2026
m*d*g*s*a*v*s*t.com D Aug 16, 2026
k*-*a*e*.be (WP 7.0.4) F Aug 16, 2026
p*t*i*k*e*u*n.com D Aug 16, 2026
p*t*i*k*a*l.com A Aug 15, 2026
d*t*b*y*l*a*.com (WP 7.0.4) A Aug 15, 2026
m*-*a*p.com C Aug 15, 2026
c*t*y*u*z*r*n.com A Aug 15, 2026
c*t*y*u*z*r.com A Aug 15, 2026
c*t*y*r*a*l.com A Aug 15, 2026
c*t*y*e*s*n*r*a*l.com A Aug 15, 2026
c*t*e*i*e*r*a*l.com A Aug 15, 2026
p*l*s*d*p*o*u*t*o*s.com A Aug 15, 2026
g*e*s*a*t.com (WP 7.0) D Aug 15, 2026
e*e*t*a*e*f*v.com (WP 7.0.4) F Aug 15, 2026
c*s*a*d*a*a*a*.com (WP 7.0.4) F Aug 14, 2026
d*j*l*c*d*n*.com F Aug 14, 2026
b*u*s*y*l*a*a*.com F Aug 14, 2026
o*9.gr (WP 7.0.3) F Aug 8, 2026
j*s*s*h*i*t.pictures F Aug 7, 2026
u*i*i*i*.c*.za (WP 7.0.3) F Aug 7, 2026
e*s*.eu D Aug 6, 2026
g*m*a*i*m*l*u*e*s*o*f.de D Aug 6, 2026
a*i*p*c*f*c*c*a*b*r.com (WP 7.0.2) F Aug 6, 2026
p*w*r*n*s.plus F Aug 5, 2026
p*y*h*l*g*w*r*s*l*c.com (WP 7.0.2) F Aug 4, 2026
g*l*m*n*r*r*e*t*n*.com (WP 7.0.2) F Aug 4, 2026
d*g*t*o.c*m.br (WP 7.0.2) F Aug 4, 2026
a*i*p*c*f*c.cl (WP 7.0.2) F Aug 4, 2026
m*k*-*e*o*a*e.c*.uk (WP 7.0.2) F Aug 4, 2026
p*r*h*.no (WP 6.8.6) F Aug 3, 2026
m*s*c*n*e*t.c*.uk (WP 7.0.2) F Aug 2, 2026
w*n*l*b*o*s.pl D Aug 2, 2026
m*y*t*k*l*a.com (WP 7.0.2) F Aug 2, 2026
m*i*l*m*c*o*k*.com F Aug 1, 2026
m*i*l*m*c*o*k.com F Aug 1, 2026
m*a*a*i*b*o*.com F Aug 1, 2026
f*r*e*b*l*v*a.com (WP 7.0.2) F Aug 1, 2026
t*e*o*s*i*v*c*l*s*.com F Aug 1, 2026
a*f*r*.org A Aug 1, 2026
m*e*e*-*a*e*.com F Aug 1, 2026
a*o*v*i*o*t.com (WP 7.0.2) F Jul 31, 2026
c*a*d*k*a*v*m*.com (WP 6.9.5) F Jul 31, 2026
m*s*e*i*t*r*i*w.com (WP 6.2.9) F Jul 31, 2026
f*a*e*h*.com D Jul 31, 2026
f*a*r*n*e*t*e*e.com D Jul 31, 2026
m*d*l*s*a*l*c.com A Jul 31, 2026
m*c*n*w*a*n*h.com (WP 6.9.5) F Jul 31, 2026
n*c*o*e*i*e*c*.com (WP 6.9.5) F Jul 30, 2026
s*l*y*a*e*m*.com A Jul 30, 2026
v*s*e*c*e*.com (WP 6.2.9) F Jul 29, 2026
l*s*c*e*d*l*u*a.com (WP 7.0.2) F Jul 29, 2026
v*2*i*i*a*.com F Jul 29, 2026
m*u*-*i*t*r*a*t*n.de D Jul 28, 2026
r*g*s*r*r*-*a*c*i*.online (WP 6.9.5) F Jul 28, 2026

Top 50 Plugins

Plugin Count
elementor 1,752,269
contact-form-7 1,734,913
elementor-pro 1,042,969
woocommerce 809,301
revslider 600,598
jetpack 449,628
js_composer 413,971
wp-rocket 336,041
essential-addons-for-elementor-lite 261,383
gravityforms 254,924
complianz-gdpr 253,919
google-site-kit 234,164
cookie-law-info 225,784
instagram-feed 221,890
sitepress-multilingual-cms 208,071
header-footer-elementor 203,584
google-analytics-for-wordpress 202,140
bluehost-wordpress-plugin 191,353
elementskit-lite 177,076
gutenberg 168,426
cookie-notice 146,605
litespeed-cache 145,566
gutenberg-core 126,202
gtranslate 122,354
the-events-calendar 121,357
wpforms-lite 121,140
astra-sites 110,947
popup-maker 108,105
woocommerce-payments 107,897
tablepress 101,709
honeypot 97,446
astra-addon 92,629
coblocks 92,193
duracelltomi-google-tag-manager 89,623
wp-smushit 89,524
layerslider 87,724
all-in-one-seo-pack 87,488
bb-plugin 85,659
akismet 83,989
premium-addons-for-elementor 82,644
ml-slider 82,288
cleantalk-spam-protect 81,255
mailchimp-for-wp 80,293
megamenu 79,514
jet-engine 77,267
ewww-image-optimizer 76,708
wp-pagenavi 76,276
fusion-builder 76,156
woocommerce-gateway-stripe 75,270
smart-slider-3 75,073

Top 50 Themes

Theme Count
hello-elementor 615,636
Divi 489,356
astra 408,710
flatsome 143,174
Avada 119,640
generatepress 113,787
pub 87,837
oceanwp 79,196
kadence 78,004
enfold 67,704
salient 64,296
twentyseventeen 53,768
twentytwentyfour 52,603
bb-theme 52,472
betheme 52,125
blocksy 50,378
cocoon-master 49,045
twentytwentyfive 45,433
dt-the7 44,982
woodmart 44,663
h4 43,939
neve 37,567
Avada-Child-Theme 36,657
gox 36,181
bridge 30,725
lightning 30,035
twentytwentyone 29,878
twentytwenty 28,365
swell 28,169
bricks 26,622
Impreza 25,820
Newspaper 23,905
twentytwentythree 21,758
epik-redesign 18,971
twentytwentytwo 18,529
uncode 18,234
twentysixteen 17,516
pro 17,439
storefront 16,051
sydney 15,979
Total 14,211
hello-theme-child-master 13,884
factory-templates-4 13,807
themify-ultra 12,852
hestia 12,436
yootheme 12,375
yith-wonder 11,928
extendable 11,903
porto 11,785
jupiter 11,725