{"id":234724,"date":"2025-05-24T06:20:32","date_gmt":"2025-05-24T06:20:32","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/cf-turnstile-for-wp\/"},"modified":"2026-03-27T09:11:49","modified_gmt":"2026-03-27T09:11:49","slug":"bot-protection-turnstile","status":"publish","type":"plugin","link":"https:\/\/lmo.wordpress.org\/plugins\/bot-protection-turnstile\/","author":1257425,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"1.1.1","stable_tag":"1.1.1","tested":"7.0","requires":"6.5","requires_php":"7.4","requires_plugins":null,"header_name":"Bot Protection with Turnstile","header_author":"Tips and Tricks HQ, mra13","header_description":"A lightweight plugin that protects core WordPress forms and selected third\u2011party plugins from spam and bot attacks using Cloudflare Turnstile CAPTCHA.","assets_banners_color":"1477ad","last_updated":"2026-03-27 09:11:49","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/www.tipsandtricks-hq.com\/development-center","header_plugin_uri":"https:\/\/www.tipsandtricks-hq.com\/bot-protection-with-turnstile-plugin","header_author_uri":"https:\/\/www.tipsandtricks-hq.com\/","rating":0,"author_block_rating":0,"active_installs":80,"downloads":902,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.4":{"tag":"1.0.4","author":"mra13","date":"2025-05-27 12:41:46"},"1.0.5":{"tag":"1.0.5","author":"mra13","date":"2025-06-23 03:57:18"},"1.0.6":{"tag":"1.0.6","author":"mra13","date":"2025-06-29 12:24:01"},"1.0.7":{"tag":"1.0.7","author":"mra13","date":"2025-06-30 07:59:50"},"1.0.8":{"tag":"1.0.8","author":"mra13","date":"2025-07-09 02:09:03"},"1.0.9":{"tag":"1.0.9","author":"mra13","date":"2025-10-10 02:45:17"},"1.1.0":{"tag":"1.1.0","author":"mra13","date":"2025-10-10 02:51:45"},"1.1.1":{"tag":"1.1.1","author":"mra13","date":"2026-03-27 09:11:49"}},"upgrade_notice":{"":"<p>None.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3299713,"resolution":"128x128","location":"assets","locale":""}},"assets_banners":{"banner-772x250.png":{"filename":"banner-772x250.png","revision":3299713,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.4","1.0.5","1.0.6","1.0.7","1.0.8","1.0.9","1.1.0","1.1.1"],"block_files":[],"assets_screenshots":{"screenshot-1.jpg":{"filename":"screenshot-1.jpg","revision":3299697,"resolution":"1","location":"assets","locale":""},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3299697,"resolution":"2","location":"assets","locale":""},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3299697,"resolution":"3","location":"assets","locale":""},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3299697,"resolution":"4","location":"assets","locale":""},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3299697,"resolution":"5","location":"assets","locale":""}},"screenshots":{"1":"WordPress login form example.","2":"WordPress registration form example.","3":"WordPress password reset form example.","4":"WordPress comment form example.","5":"Checkout form of the Accept Stripe Payments plugin."},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[362,3882,600,2419,214603],"plugin_category":[44,54],"plugin_contributors":[78349,77710],"plugin_business_model":[],"class_list":["post-234724","plugin","type-plugin","status-publish","hentry","plugin_tags-captcha","plugin_tags-cloudflare","plugin_tags-security","plugin_tags-spam-protection","plugin_tags-turnstile","plugin_category-discussion-and-community","plugin_category-security-and-spam-protection","plugin_contributors-mra13","plugin_contributors-tips-and-tricks-hq","plugin_committers-mra13"],"banners":{"banner":"https:\/\/ps.w.org\/bot-protection-turnstile\/assets\/banner-772x250.png?rev=3299713","banner_2x":false,"banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/bot-protection-turnstile\/assets\/icon-128x128.png?rev=3299713","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/bot-protection-turnstile\/assets\/screenshot-1.jpg?rev=3299697","caption":"WordPress login form example."},{"src":"https:\/\/ps.w.org\/bot-protection-turnstile\/assets\/screenshot-2.png?rev=3299697","caption":"WordPress registration form example."},{"src":"https:\/\/ps.w.org\/bot-protection-turnstile\/assets\/screenshot-3.png?rev=3299697","caption":"WordPress password reset form example."},{"src":"https:\/\/ps.w.org\/bot-protection-turnstile\/assets\/screenshot-4.png?rev=3299697","caption":"WordPress comment form example."},{"src":"https:\/\/ps.w.org\/bot-protection-turnstile\/assets\/screenshot-5.png?rev=3299697","caption":"Checkout form of the Accept Stripe Payments plugin."}],"raw_content":"<!--section=description-->\n<p>Bot Protection with Turnstile lets you drop-in Cloudflare's privacy-focused, no-CAPTCHA challenge on the most common attack surfaces of a WordPress site:<\/p>\n\n<ul>\n<li><strong>Core WordPress forms<\/strong> \u2013 Login, registration, password reset, and comment forms.<\/li>\n<li><strong>WooCommerce<\/strong> \u2013 Protect checkout, login, registration, and password reset forms.<\/li>\n<li><strong>bbPress<\/strong> \u2013 Secure forum registration, login, and topic creation forms.<\/li>\n<li><strong>Contact Form 7<\/strong> \u2013 Add Turnstile to your CF7 forms to block spam submissions.<\/li>\n<li><strong>Accept Stripe Payments<\/strong> \u2013 Protect checkout and payment pop-up forms.<\/li>\n<li><strong>Simple Download Monitor<\/strong> \u2013 Secure download buttons and squeeze forms.<\/li>\n<li><strong>Simple Shopping Cart<\/strong> \u2013 Add Turnstile to your shopping cart plugin's manual checkout forms.<\/li>\n<li><strong>WP Express Checkout<\/strong> \u2013 Protect checkout 100% discount checkout forms with Turnstile.<\/li>\n<li><strong>WP eMember<\/strong> \u2013 Secure registration, login and password reset forms with Turnstile.<\/li>\n<\/ul>\n\n<p>Just add your Turnstile <em>Site Key<\/em> and <em>Secret Key<\/em>, choose the forms you want to protect, and you\u2019re done. No more subjecting your users to image puzzles or accessibility headaches.<\/p>\n\n<p>Turnstile can generate multiple types of non-intrusive challenges to verify users are human, all without showing visitors a puzzle.<\/p>\n\n<h3>Highlights<\/h3>\n\n<ul>\n<li>Zero-friction, user-friendly bot protection.<\/li>\n<li>A free reCAPTCHA alternative for WordPress.<\/li>\n<li>Works even when visitors are behind ad-blockers or privacy extensions.<\/li>\n<li>Granular toggles to enable\/disable on individual forms.<\/li>\n<li>Debug logging feature.<\/li>\n<li>Fully translatable and developer-friendly with action\/filter hooks.<\/li>\n<li>Road-map for upcoming integrations with other popular plugins.<\/li>\n<\/ul>\n\n<h3>Getting Started<\/h3>\n\n<p>It's quick and easy to get started with the Bot Protection plugin.<\/p>\n\n<ul>\n<li>Generate a Site Key and Secret Key in your Cloudflare account, then enter them in the plugin's settings page.<\/li>\n<li>Choose which forms you want to protect with Turnstile and click Save.<\/li>\n<li>Turnstile challenges will automatically appear on the selected forms to to block bots and spam.<\/li>\n<\/ul>\n\n<p>For more detailed instructions, please see our <a href=\"https:\/\/www.tipsandtricks-hq.com\/bot-protection-with-turnstile-plugin\">setup guide<\/a>.<\/p>\n\n<h3>External Services<\/h3>\n\n<p>This plugin integrates with the Cloudflare Turnstile CAPTCHA service to help protect WordPress forms from spam and automated abuse.<\/p>\n\n<p>When a protected form (such as login, registration, or comment) is displayed, the plugin connects to Cloudflare Turnstile to generate a CAPTCHA challenge. When the form is submitted, Turnstile receives the user's IP address and browser metadata to verify whether the submission is from a human or bot.<\/p>\n\n<p>This service is provided by Cloudflare, Inc.:\n- Terms of Service: https:\/\/www.cloudflare.com\/terms\/\n- Privacy Policy: https:\/\/www.cloudflare.com\/privacypolicy\/<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin ZIP via <strong>Plugins \u2192 Add New \u2192 Upload Plugin<\/strong>, or install it directly from the WordPress.org repository.<\/li>\n<li>Activate <strong>Bot Protection with Turnstile<\/strong> via the <strong>Plugins<\/strong> menu.<\/li>\n<li>Navigate to <strong>Settings \u2192 Turnstile<\/strong>.<\/li>\n<li>Enter your <strong>Site Key<\/strong> and <strong>Secret Key<\/strong> from the Cloudflare dashboard.<\/li>\n<li>Check the boxes for the forms and integrations you wish to protect.<\/li>\n<li>Save changes and test a form to confirm the Turnstile widget appears.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"is%20it%20free%20to%20use%3F\"><h3>Is it free to use?<\/h3><\/dt>\n<dd><p>Yes, Turnstile CAPTCHA is free to use. You just need a free Cloudflare account to get started. This plugin is also completely free.<\/p><\/dd>\n<dt id=\"where%20do%20i%20get%20a%20site%20key%20and%20secret%20key%3F\"><h3>Where do I get a Site Key and Secret Key?<\/h3><\/dt>\n<dd><p>Sign in to your Cloudflare account, add a Turnstile widget, and copy the credentials provided.<\/p><\/dd>\n<dt id=\"is%20there%20a%20setup%20guide%20for%20this%20plugin%3F\"><h3>Is there a setup guide for this plugin?<\/h3><\/dt>\n<dd><p>Yes, you can view the plugin's setup guide <a href=\"https:\/\/www.tipsandtricks-hq.com\/bot-protection-with-turnstile-plugin\">here<\/a><\/p><\/dd>\n<dt id=\"does%20this%20slow%20down%20my%20site%3F\"><h3>Does this slow down my site?<\/h3><\/dt>\n<dd><p>No. The Turnstile script is tiny and loaded from Cloudflare's global edge network. It adds a negligible footprint.<\/p><\/dd>\n<dt id=\"can%20i%20style%20or%20reposition%20the%20widget%3F\"><h3>Can I style or reposition the widget?<\/h3><\/dt>\n<dd><p>Yes \u2013 you can choose a theme and widget size in the settings menu.<\/p><\/dd>\n<dt id=\"i%20only%20need%20it%20on%20comments%20%E2%80%93%20is%20that%20possible%3F\"><h3>I only need it on comments \u2013 is that possible?<\/h3><\/dt>\n<dd><p>Absolutely. Toggle off any forms you don't wish to protect.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.1.1<\/h4>\n\n<ul>\n<li>Added support added for WPEC free and manual checkout.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Added an appropriate error message that will be shown in the front end when api keys are not set in the settings.<\/li>\n<\/ul>\n\n<h4>1.0.9<\/h4>\n\n<ul>\n<li>Manual Checkout Form support added for WP Express Checkout plugin.<\/li>\n<li>Turnstile CAPTCHA support added for the WP eMember plugin.<\/li>\n<\/ul>\n\n<h4>1.0.8<\/h4>\n\n<ul>\n<li>Fixed a JS warning.<\/li>\n<\/ul>\n\n<h4>1.0.7<\/h4>\n\n<ul>\n<li>Improved the Simple Download Monitor plugin's integration.<\/li>\n<\/ul>\n\n<h4>1.0.6<\/h4>\n\n<ul>\n<li>Compatibility with the Simple Download Monitor plugin's download via link feature.<\/li>\n<\/ul>\n\n<h4>1.0.5<\/h4>\n\n<ul>\n<li>Contact Form 7 plugin integration added.<\/li>\n<li>Simple Shopping Cart plugin integration added.<\/li>\n<li>WP Express Checkout plugin integration added.<\/li>\n<\/ul>\n\n<h4>1.0.4<\/h4>\n\n<ul>\n<li>Added integration for WooCommerce.<\/li>\n<li>Displays a notice in the settings menu if a supported plugin is inactive.<\/li>\n<li>Added integration for the bbPress forum plugin.<\/li>\n<li>Suppresses the Stripe plugin's CAPTCHA-disabled warning when Turnstile is enabled.<\/li>\n<\/ul>\n\n<h4>1.0.3<\/h4>\n\n<ul>\n<li>Added a note for when the captcha is enabled in the settings page of the ASP or SDM plugins.<\/li>\n<li>Added new CSS code to the admin CSS file.<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Removed the use of inline  tags.<\/li>\n<li>Added 'External services' section to the readme.txt file.<\/li>\n<li>Removed the debug logging to a local file inside the plugin folder.<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Output escaping improvement as per the plugin check report.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release version.<\/li>\n<\/ul>","raw_excerpt":"A lightweight plugin that protects core WordPress forms and selected third\u2011party plugins from spam and bot attacks using Cloudflare Turnstile CAPTCHA.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/lmo.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/234724","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=234724"}],"author":[{"embeddable":true,"href":"https:\/\/lmo.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/mra13"}],"wp:attachment":[{"href":"https:\/\/lmo.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=234724"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/lmo.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=234724"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/lmo.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=234724"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/lmo.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=234724"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/lmo.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=234724"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/lmo.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=234724"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}