{"id":263748,"date":"2026-01-02T08:03:28","date_gmt":"2026-01-02T08:03:28","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/edccm-turnstile\/"},"modified":"2026-01-02T08:02:56","modified_gmt":"2026-01-02T08:02:56","slug":"ohmtang-cft","status":"publish","type":"plugin","link":"https:\/\/lmo.wordpress.org\/plugins\/ohmtang-cft\/","author":23352150,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"1.0.0","stable_tag":"1.0.0","tested":"6.9.4","requires":"6.7","requires_php":"7.4","requires_plugins":null,"header_name":"OhmTang CFT","header_author":"Ohm Tang","header_description":"Integrated Cloudflare Turnstile for Wordpress and Woocommerce's Forms.","assets_banners_color":"9486c5","last_updated":"2026-01-02 08:02:56","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/ohmtang.com\/","header_plugin_uri":"","header_author_uri":"https:\/\/ohmtang.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":110,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"ohmtang","date":"2026-01-02 08:02:56"}},"upgrade_notice":{"1.0.0":"<p>First stable release! Features granular form controls with individual toggle switches and smart conditional protection for checkout and comments based on user login status.<\/p>"},"ratings":[],"assets_icons":{"icon-256x256.gif":{"filename":"icon-256x256.gif","revision":3430902,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3430902,"resolution":"1544x500","location":"assets","locale":""},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3430902,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3430902,"resolution":"1","location":"assets","locale":""},"screenshot-10.png":{"filename":"screenshot-10.png","revision":3430902,"resolution":"10","location":"assets","locale":""},"screenshot-11.png":{"filename":"screenshot-11.png","revision":3430902,"resolution":"11","location":"assets","locale":""},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3430902,"resolution":"2","location":"assets","locale":""},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3430902,"resolution":"3","location":"assets","locale":""},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3430902,"resolution":"4","location":"assets","locale":""},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3430902,"resolution":"5","location":"assets","locale":""},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3430902,"resolution":"6","location":"assets","locale":""},"screenshot-7.png":{"filename":"screenshot-7.png","revision":3430902,"resolution":"7","location":"assets","locale":""},"screenshot-8.png":{"filename":"screenshot-8.png","revision":3430902,"resolution":"8","location":"assets","locale":""},"screenshot-9.png":{"filename":"screenshot-9.png","revision":3430902,"resolution":"9","location":"assets","locale":""}},"screenshots":{"1":"WordPress login form enable OhmTang CFT","2":"woocommerce my account page login form and register form","3":"Woocommerce Full site editting Block Checkout page enable OhmTang CFT","4":"Woocommerce Traditional Checkout page enable OhmTang CFT","5":"Wordpress Comment Form enable OhmTang CFT","6":"OhmTang CFT site key and secret key setting page","7":"Woocommerce and WordPress Form Configuration","8":"Woocommerce Review Form  enable OhmTang CFT","9":"WordPress lostpassword form enable OhmTang CFT","10":"WordPress register form enable OhmTang CFT","11":"Woocommerce lostpassword form enable OhmTang CFT"},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[362,3882,2419,214603,712],"plugin_category":[44],"plugin_contributors":[253153],"plugin_business_model":[],"class_list":["post-263748","plugin","type-plugin","status-publish","hentry","plugin_tags-captcha","plugin_tags-cloudflare","plugin_tags-spam-protection","plugin_tags-turnstile","plugin_tags-verification","plugin_category-discussion-and-community","plugin_contributors-ohmtang","plugin_committers-ohmtang"],"banners":{"banner":"https:\/\/ps.w.org\/ohmtang-cft\/assets\/banner-772x250.png?rev=3430902","banner_2x":"https:\/\/ps.w.org\/ohmtang-cft\/assets\/banner-1544x500.png?rev=3430902","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/ohmtang-cft\/assets\/icon-256x256.gif?rev=3430902","icon_2x":"https:\/\/ps.w.org\/ohmtang-cft\/assets\/icon-256x256.gif?rev=3430902","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/ohmtang-cft\/assets\/screenshot-1.png?rev=3430902","caption":"WordPress login form enable OhmTang CFT"},{"src":"https:\/\/ps.w.org\/ohmtang-cft\/assets\/screenshot-2.png?rev=3430902","caption":"woocommerce my account page login form and register form"},{"src":"https:\/\/ps.w.org\/ohmtang-cft\/assets\/screenshot-3.png?rev=3430902","caption":"Woocommerce Full site editting Block Checkout page enable OhmTang CFT"},{"src":"https:\/\/ps.w.org\/ohmtang-cft\/assets\/screenshot-4.png?rev=3430902","caption":"Woocommerce Traditional Checkout page enable OhmTang CFT"},{"src":"https:\/\/ps.w.org\/ohmtang-cft\/assets\/screenshot-5.png?rev=3430902","caption":"Wordpress Comment Form enable OhmTang CFT"},{"src":"https:\/\/ps.w.org\/ohmtang-cft\/assets\/screenshot-6.png?rev=3430902","caption":"OhmTang CFT site key and secret key setting page"},{"src":"https:\/\/ps.w.org\/ohmtang-cft\/assets\/screenshot-7.png?rev=3430902","caption":"Woocommerce and WordPress Form Configuration"},{"src":"https:\/\/ps.w.org\/ohmtang-cft\/assets\/screenshot-8.png?rev=3430902","caption":"Woocommerce Review Form  enable OhmTang CFT"},{"src":"https:\/\/ps.w.org\/ohmtang-cft\/assets\/screenshot-9.png?rev=3430902","caption":"WordPress lostpassword form enable OhmTang CFT"},{"src":"https:\/\/ps.w.org\/ohmtang-cft\/assets\/screenshot-10.png?rev=3430902","caption":"WordPress register form enable OhmTang CFT"},{"src":"https:\/\/ps.w.org\/ohmtang-cft\/assets\/screenshot-11.png?rev=3430902","caption":"Woocommerce lostpassword form enable OhmTang CFT"}],"raw_content":"<!--section=description-->\n<p>OhmTang CFT is a comprehensive WordPress security plugin that seamlessly integrates Cloudflare Turnstile's advanced CAPTCHA protection into your website. Say goodbye to traditional annoying CAPTCHAs and embrace a frictionless, privacy-focused security solution that effectively blocks bots while providing a smooth user experience. Completely free Cloudflare Turnstile integration for WordPress and WooCommerce - no premium features, no hidden costs, just powerful spam protection.<\/p>\n\n<p>\ud83d\udce2 DISCLAIMER: Trademarks and brands are the property of their respective owners.<\/p>\n\n<h4>\ud83c\udf9b\ufe0f Granular Form Control<\/h4>\n\n<p><strong>Individual Form Toggle and Each verification form supports custom error messages, allowing you to personalize the display when users fail the Turnstile challenge.- Complete Flexibility<\/strong><\/p>\n\n<p>Take full control over your security implementation with our granular form management system:<\/p>\n\n<ul>\n<li><strong>Per-Form Enable\/Disable<\/strong> - Every supported form can be individually activated or deactivated<\/li>\n<li><strong>WordPress Core Forms<\/strong>:\n\n<ul>\n<li>\u2705 Login Form - Toggle on\/off<\/li>\n<li>\u2705 Registration Form - Toggle on\/off  <\/li>\n<li>\u2705 Lost Password Form - Toggle on\/off<\/li>\n<li>\u2705 Comment Form - Toggle on\/off ( on\/off login or no login user)<\/li>\n<\/ul><\/li>\n<li><strong>WooCommerce Forms<\/strong>:\n\n<ul>\n<li>\u2705 Login Form - Toggle on\/off<\/li>\n<li>\u2705 Registration Form - Toggle on\/off<\/li>\n<li>\u2705 Lost Password Form - Toggle on\/off<\/li>\n<li>\u2705 Checkout Form (Support Full site editting Block Checkout page and Traditional Checkout page) - Toggle on\/off ( on\/off login or no login user)<\/li>\n<\/ul><\/li>\n<\/ul>\n\n<h4>\ud83c\udfaf Smart Conditional Protection<\/h4>\n\n<p><strong>Intelligent Verification Based on User Status<\/strong><\/p>\n\n<p>Advanced conditional protection for better user experience:<\/p>\n\n<ul>\n<li><p><strong>Checkout Page Smart Settings<\/strong>:<\/p>\n\n<ul>\n<li>\ud83d\udd04 <strong>Option to skip verification for logged-in users<\/strong> - Provide seamless checkout experience for returning customers<\/li>\n<li>\ud83d\udd12 Always protect guest checkouts - Secure anonymous transactions<\/li>\n<li>\u26a1 Reduce friction for trusted customers while maintaining security<\/li>\n<\/ul><\/li>\n<li><p><strong>Comment Form Intelligent Protection<\/strong>:<\/p>\n\n<ul>\n<li>\ud83d\udd04 <strong>Toggle verification for logged-in users<\/strong> - Choose whether authenticated users need CAPTCHA<\/li>\n<li>\ud83d\udee1\ufe0f Always protect guest comments - Prevent spam from anonymous visitors<\/li>\n<li>\ud83d\udcdd Respect trusted commenters - Regular commentators can enjoy streamlined experience<\/li>\n<\/ul><\/li>\n<li><p><strong>Flexible User-Based Rules<\/strong>:<\/p>\n\n<ul>\n<li>\ud83c\udfaa Customize protection based on user roles and status<\/li>\n<li>\ud83d\udd10 Balance security and usability intelligently<\/li>\n<li>\ud83d\udcca Reduce unnecessary verification for trusted users<\/li>\n<\/ul><\/li>\n<\/ul>\n\n<h4>\ud83d\udee1\ufe0f Complete WordPress Core Protection<\/h4>\n\n<p>Protect every aspect of your WordPress site with comprehensive form security:<\/p>\n\n<ul>\n<li><strong>Login Security<\/strong> - Prevent brute force attacks on wp-login.php and admin areas (toggleable)<\/li>\n<li><strong>User Registration<\/strong> - Stop spam registrations and fake account creation (toggleable)<\/li>\n<li><strong>Comment Moderation<\/strong> - Eliminate spam comments automatically with smart user detection<\/li>\n<li><strong>Password Recovery<\/strong> - Secure lost password forms against abuse (toggleable)<\/li>\n<li><strong>Contact Forms<\/strong> - Compatible with popular contact form plugins<\/li>\n<li><strong>Your favorite Contact Forms<\/strong> - If you need to integrate your preferred form, contact me: ohmtang@outlook.com<\/li>\n<\/ul>\n\n<h4>\ud83d\uded2 Advanced WooCommerce Integration<\/h4>\n\n<p>Secure your online store and protect your revenue with dedicated WooCommerce protection:<\/p>\n\n<ul>\n<li><strong>Checkout Security<\/strong> - Prevent fraudulent orders and fake transactions with smart user detection<\/li>\n<li><strong>Customer Registration<\/strong> - Ensure genuine customer accounts (toggleable)<\/li>\n<li><strong>Guest Checkout<\/strong> - Protect checkout process for all users with conditional logic<\/li>\n<li><strong>Login Forms<\/strong> - Secure customer login and authentication (toggleable)<\/li>\n<li><strong>Review Systems<\/strong> - Block fake product reviews and ratings<\/li>\n<\/ul>\n\n<h4>\u2699\ufe0f Advanced Features &amp; Customization<\/h4>\n\n<ul>\n<li><strong>Smart Theme Options<\/strong> - Light, dark, and auto themes that adapt to your site design<\/li>\n<li><strong>Flexible Styles<\/strong> - Normal, Flexible and Compact 3 styles where Turnstile appears on each form<\/li>\n<li><strong>Granular Control<\/strong> - Enable\/disable protection for individual forms with one click<\/li>\n<li><strong>Conditional Logic<\/strong> - Smart rules based on user login status<\/li>\n<li><strong>Performance Optimized<\/strong> - Minimal impact on page load times<\/li>\n<li><strong>Mobile Responsive<\/strong> - Perfectly adapted for all devices<\/li>\n<li><strong>Accessibility Ready<\/strong> - Designed with accessibility in mind<\/li>\n<\/ul>\n\n<h4>\ud83d\udd27 Developer Friendly<\/h4>\n\n<ul>\n<li>Extensive hooks and filters for customization<\/li>\n<li>Clean, well-documented codebase<\/li>\n<li>WordPress coding standards compliant<\/li>\n<li>Easy integration with custom themes and plugins<\/li>\n<li>Comprehensive error logging and debugging<\/li>\n<\/ul>\n\n<h4>\ud83c\udf0d Multi-language Ready<\/h4>\n\n<ul>\n<li>Full translation support with .pot file<\/li>\n<\/ul>\n\n<h4>Why Cloudflare Turnstile?<\/h4>\n\n<ul>\n<li><strong>User-Friendly<\/strong> - No annoying puzzles, image recognition, or text challenges<\/li>\n<li><strong>Privacy-First<\/strong> - GDPR compliant and privacy-respecting<\/li>\n<li><strong>Free Forever<\/strong> - Cloudflare's free tier provides robust protection<\/li>\n<li><strong>Advanced Detection<\/strong> - Machine learning and behavioral analysis<\/li>\n<li><strong>Fast Implementation<\/strong> - Simple setup with Site Key and Secret Key<\/li>\n<\/ul>\n\n<p><strong>Experience the perfect balance of security and usability!<\/strong> With individual form controls and smart conditional protection, you can secure your site without frustrating your legitimate users.<\/p>\n\n<!--section=installation-->\n<h4>Automatic Installation<\/h4>\n\n<ol>\n<li>Go to Plugins &gt; Add New in your WordPress admin<\/li>\n<li>Search for \"OhmTang CFT\"<\/li>\n<li>Click \"Install Now\" and then \"Activate\"<\/li>\n<li>Go to OhmTang CFT settings page<\/li>\n<li>Configure your Cloudflare Turnstile keys<\/li>\n<\/ol>\n\n<h4>Manual Installation<\/h4>\n\n<ol>\n<li>Upload the <code>ohmtang-cft<\/code> folder to the <code>\/wp-content\/plugins\/<\/code> directory<\/li>\n<li>Activate the plugin through the 'Plugins' menu in WordPress<\/li>\n<li>Go to OhmTang CFT settings page<\/li>\n<li>Configure your Cloudflare Turnstile keys<\/li>\n<\/ol>\n\n<h4>Configuration<\/h4>\n\n<ol>\n<li>Get your free Site Key and Secret Key from <a href=\"https:\/\/dash.cloudflare.com\/?to=\/:account\/turnstile\">Cloudflare Turnstile<\/a><\/li>\n<li>Go to WordPress Admin &gt; OhmTang CFT <\/li>\n<li>Enter your Site Key and Secret Key in the API Settings section<\/li>\n<li>Navigate to Forms Settings tab to individually enable\/disable each form<\/li>\n<li>Configure smart settings for checkout and comments (logged-in user options)<\/li>\n<li>Choose your preferred theme and appearance settings<\/li>\n<li>Save settings and test your protected forms<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id='can%20i%20enable%20turnstile%20only%20for%20specific%20forms%3F'><h3>Can I enable Turnstile only for specific forms?<\/h3><\/dt>\n<dd><p><strong>Yes!<\/strong> Every form has its own toggle switch. You can enable protection for login forms but disable it for comments, or any combination you prefer.<\/p><\/dd>\n<dt id='how%20does%20the%20logged-in%20user%20protection%20work%20for%20checkout%3F'><h3>How does the logged-in user protection work for checkout?<\/h3><\/dt>\n<dd><p>You can choose whether logged-in users need to complete verification during checkout. This allows returning customers to enjoy faster checkout while still protecting guest transactions.<\/p><\/dd>\n<dt id='can%20i%20disable%20verification%20for%20trusted%20commenters%3F'><h3>Can I disable verification for trusted commenters?<\/h3><\/dt>\n<dd><p>Absolutely! The comment form has an option to skip verification for logged-in users, so your regular visitors aren't bothered with CAPTCHA.<\/p><\/dd>\n<dt id='what%20if%20i%20only%20want%20to%20protect%20woocommerce%20but%20not%20wordpress%20forms%3F'><h3>What if I only want to protect WooCommerce but not WordPress forms?<\/h3><\/dt>\n<dd><p>You have complete control! Simply enable the WooCommerce forms you want to protect and disable the WordPress core forms in the settings.<\/p><\/dd>\n<dt id='is%20there%20a%20way%20to%20see%20which%20forms%20are%20currently%20protected%3F'><h3>Is there a way to see which forms are currently protected?<\/h3><\/dt>\n<dd><p>Yes, the admin dashboard provides a clear overview of all enabled forms with quick toggle switches.<\/p><\/dd>\n<dt id='does%20this%20plugin%20use%20any%20external%20services%3F'><h3>Does this plugin use any external services?<\/h3><\/dt>\n<dd><p>Yes, this plugin integrates with Cloudflare Turnstile, a free CAPTCHA alternative service provided by Cloudflare, Inc. Turnstile helps verify human users on forms (e.g., login, comments, WooCommerce checkout) without intrusive puzzles, improving security while minimizing user friction.<\/p>\n\n<p>Turnstile is embedded via JavaScript widget and communicates with Cloudflare's servers (challenges.cloudflare.com) for bot detection.<\/p><\/dd>\n<dt id='what%20data%20is%20sent%20to%20cloudflare%20and%20when%3F'><h3>What data is sent to Cloudflare and when?<\/h3><\/dt>\n<dd><p>To provide bot detection, Turnstile collects and sends limited client-side signals (\"Signals\") to Cloudflare only when necessary:<\/p>\n\n<ul>\n<li><p><strong>Data collected<\/strong>: Client IP address, TLS fingerprint, User-Agent header, sitekey (your site's verification key), and origin domain. Additional non-interactive signals include proof-of-work\/space, browser API probes, and behavior quirks (no cookies, login data, or personal identifiers are collected).<\/p><\/li>\n<li><p><strong>When sent<\/strong>:<\/p>\n\n<ul>\n<li>On widget load: Initial signals to assess the browser environment.<\/li>\n<li>On form submission: Verification token and response signals for siteverify check.<\/li>\n<\/ul><\/li>\n<\/ul>\n\n<p>These signals are used solely for real-time bot blocking and algorithm improvement. Cloudflare acts as a data processor (you are the controller). No data is used for advertising or retargeting. Retention is minimal, aligned with security needs.<\/p>\n\n<p>For EU\/GDPR users: Data may be processed in the US under standard contractual clauses.<\/p><\/dd>\n<dt id='privacy%20and%20terms'><h3>Privacy and Terms<\/h3><\/dt>\n<dd><p>For full details:\n- Turnstile Privacy Addendum: https:\/\/www.cloudflare.com\/trust-hub\/gdpr\/turnstile-privacy-addendum\/\n- Cloudflare Privacy Policy: https:\/\/www.cloudflare.com\/privacypolicy\/\n- Cloudflare Website Terms: https:\/\/www.cloudflare.com\/website-terms\/\n- Cloudflare Data Processing Addendum (GDPR): https:\/\/www.cloudflare.com\/trust-hub\/gdpr\/<\/p>\n\n<p>This plugin does not store or send additional data beyond what's required for Turnstile integration. If you have privacy concerns, review Cloudflare's policies or contact us.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release with comprehensive form protection<\/li>\n<li>Individual enable\/disable toggle for every supported form<\/li>\n<li>Smart conditional protection for checkout pages (logged-in user options)<\/li>\n<li>Intelligent comment form settings (logged-in user verification toggle)<\/li>\n<li>Complete WordPress core forms integration<\/li>\n<li>Full WooCommerce compatibility<\/li>\n<li>Advanced admin dashboard with granular controls<\/li>\n<li>Multi-language support<\/li>\n<li>Developer-friendly hooks and filters<\/li>\n<\/ul>","raw_excerpt":"Integrate Cloudflare Turnstile CAPTCHA for WordPress &amp; WooCommerce forms with custom error messages, each form controlled individually","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/lmo.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/263748","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/lmo.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/lmo.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/lmo.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=263748"}],"author":[{"embeddable":true,"href":"https:\/\/lmo.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/ohmtang"}],"wp:attachment":[{"href":"https:\/\/lmo.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=263748"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/lmo.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=263748"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/lmo.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=263748"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/lmo.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=263748"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/lmo.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=263748"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/lmo.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=263748"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}