{"id":202954,"date":"2024-11-03T13:27:57","date_gmt":"2024-11-03T13:27:57","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/ris-cloudflare-captcha\/"},"modified":"2026-06-15T12:44:36","modified_gmt":"2026-06-15T12:44:36","slug":"ris-cloudflare-captcha","status":"publish","type":"plugin","link":"https:\/\/ja.wordpress.org\/plugins\/ris-cloudflare-captcha\/","author":10062526,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.1","stable_tag":"1.1","tested":"7.0","requires":"5.0","requires_php":"7.4","requires_plugins":null,"header_name":"RIS Cloudflare CAPTCHA","header_author":"Md Taufiqur Rahman","header_description":"Adds Cloudflare CAPTCHA to the WordPress login page, and optionally to all forms including comments.","assets_banners_color":"665296","last_updated":"2026-06-15 12:44:36","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/wordpress.org\/plugins\/ris-cloudflare-captcha\/","header_author_uri":"https:\/\/www.realitsolution.com\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":1167,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0":{"tag":"1.0","author":"smartshovon","date":"2024-11-03 14:03:40"},"1.1":{"tag":"1.1","author":"smartshovon","date":"2026-06-15 12:44:36"}},"upgrade_notice":{"1.1":"<p>Major security update. Adds server-side verification for all forms, proper nonces, tabbed settings UI, test-connection button, per-form toggles, theme\/appearance controls, shortcode, developer hooks, and uninstall cleanup. Recommended for all users.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3180686,"resolution":"128x128","location":"assets","locale":"","width":127,"height":128}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3573131,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3573131,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0","1.1"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"Settings page - Cloudflare API keys configuration","2":"Tabbed admin interface with Settings, Help, and About tabs","3":"Test Connection button for instant verification","4":"Login form with Turnstile widget","5":"Comment form with Turnstile widget","6":"Dark theme option","7":"Mobile-friendly responsive widget"}},"plugin_section":[],"plugin_tags":[362,3882,600,599,214603],"plugin_category":[42,44,54],"plugin_contributors":[267237,234030],"plugin_business_model":[],"class_list":["post-202954","plugin","type-plugin","status-publish","hentry","plugin_tags-captcha","plugin_tags-cloudflare","plugin_tags-security","plugin_tags-spam","plugin_tags-turnstile","plugin_category-contact-forms","plugin_category-discussion-and-community","plugin_category-security-and-spam-protection","plugin_contributors-realitsolution","plugin_contributors-smartshovon","plugin_committers-smartshovon"],"banners":{"banner":"https:\/\/ps.w.org\/ris-cloudflare-captcha\/assets\/banner-772x250.png?rev=3573131","banner_2x":"https:\/\/ps.w.org\/ris-cloudflare-captcha\/assets\/banner-1544x500.png?rev=3573131","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/ris-cloudflare-captcha\/assets\/icon-128x128.png?rev=3180686","icon_2x":false,"generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p><strong>RIS Cloudflare CAPTCHA<\/strong> adds the modern, privacy-first <a href=\"https:\/\/www.cloudflare.com\/products\/turnstile\/\">Cloudflare Turnstile<\/a> CAPTCHA to your WordPress site. Stop bots, spam comments, and brute-force login attacks without annoying your visitors with image puzzles or Google reCAPTCHA.<\/p>\n\n<p>Unlike legacy CAPTCHAs, Cloudflare Turnstile runs completely in the background, never asks visitors to click traffic lights or type distorted text, and protects visitor privacy.<\/p>\n\n<h4>Why Choose RIS Cloudflare CAPTCHA?<\/h4>\n\n<ul>\n<li><strong>Privacy-friendly<\/strong> - No user tracking, no cookies, no personal data collection.<\/li>\n<li><strong>User-friendly<\/strong> - Most visitors never see a challenge; it's invisible by default.<\/li>\n<li><strong>Lightweight<\/strong> - Tiny footprint, no external dependencies, no bloated JS bundles.<\/li>\n<li><strong>Free<\/strong> - Powered by Cloudflare Turnstile, which is 100% free for unlimited use.<\/li>\n<li><strong>Universal<\/strong> - Protects WordPress login, registration, comment, lost-password, and WPForms.<\/li>\n<li><strong>Developer-friendly<\/strong> - Shortcode, PHP function, and a verification filter for custom forms.<\/li>\n<li><strong>Multilingual<\/strong> - Supports 11 widget languages including English, Spanish, French, German, Bengali, Hindi, Arabic, Chinese, Japanese, and more.<\/li>\n<li><strong>Customizable<\/strong> - Light, dark, or auto theme; visible, invisible, or interaction-only mode.<\/li>\n<\/ul>\n\n<h4>Features<\/h4>\n\n<ul>\n<li>Drop-in Turnstile widget on:\n\n<ul>\n<li>WordPress login form<\/li>\n<li>WordPress registration form<\/li>\n<li>WordPress lost password form<\/li>\n<li>WordPress comment form<\/li>\n<li>WPForms (all forms)<\/li>\n<\/ul><\/li>\n<li>Server-side token verification for every form (not just client-side).<\/li>\n<li>Secure nonce checks on every form submission.<\/li>\n<li><strong>Test Connection<\/strong> button to instantly verify your API keys.<\/li>\n<li>Per-form enable\/disable checkboxes.<\/li>\n<li>Light, dark, or auto theme matching.<\/li>\n<li>Visible, invisible (\"execute\"), or interaction-only appearance.<\/li>\n<li>Custom widget language selection.<\/li>\n<li>Tabbed admin settings page (Settings \/ Help \/ About).<\/li>\n<li>Shortcode: <code>[ris_turnstile action=\"contact\"]<\/code> for custom forms.<\/li>\n<li>Developer filter: <code>ris_cf_captcha_verify_response<\/code> for custom verification.<\/li>\n<li>Full uninstall cleanup (deletes all options on plugin removal).<\/li>\n<li>Multisite compatible.<\/li>\n<li>Translation ready (.pot, \/languages folder).<\/li>\n<li>Proper WordPress coding standards, sanitization, escaping, and capability checks.<\/li>\n<\/ul>\n\n<h4>How It Works<\/h4>\n\n<ol>\n<li>Install and activate the plugin.<\/li>\n<li>Get free Turnstile keys from your <a href=\"https:\/\/dash.cloudflare.com\/?to=\/:account\/turnstile\">Cloudflare Dashboard<\/a>.<\/li>\n<li>Paste your Site Key and Secret Key into the plugin settings.<\/li>\n<li>Tick the forms you want to protect.<\/li>\n<li>Save. Done.<\/li>\n<\/ol>\n\n<h4>Shortcode<\/h4>\n\n<p>Use the widget on any page or custom form:<\/p>\n\n<pre><code>[ris_turnstile action=\"contact\"]\n<\/code><\/pre>\n\n<p>Or in PHP:<\/p>\n\n<pre><code>&lt;?php echo do_shortcode( '[ris_turnstile]' ); ?&gt;\n<\/code><\/pre>\n\n<h4>Custom Form Verification (Developers)<\/h4>\n\n<p>Hook into the verification filter:<\/p>\n\n<pre><code>add_filter( 'ris_cf_captcha_verify_response', function( $is_valid, $token, $ip ) {\n \/\/ Your custom checks here.\n return $is_valid;\n}, 10, 3 );\n<\/code><\/pre>\n\n<h4>Privacy<\/h4>\n\n<p>This plugin:\n* Does <strong>not<\/strong> set any cookies.\n* Does <strong>not<\/strong> track users.\n* Does <strong>not<\/strong> store any personal data.\n* Sends the visitor's IP address to Cloudflare only for the verification request, as required by the Turnstile API.\n* Does <strong>not<\/strong> send any data to any third party other than Cloudflare.<\/p>\n\n<p>GDPR, CCPA, and privacy-law friendly.<\/p>\n\n<h4>Related Plugins<\/h4>\n\n<ul>\n<li>Real IT Solution - <a href=\"https:\/\/www.realitsolution.com\/\">https:\/\/www.realitsolution.com\/<\/a><\/li>\n<\/ul>\n\n<h3>Credits<\/h3>\n\n<ul>\n<li>Developed by <a href=\"https:\/\/www.realitsolution.com\/\">Real IT Solution<\/a> - Md Taufiqur Rahman.<\/li>\n<li>Powered by <a href=\"https:\/\/www.cloudflare.com\/products\/turnstile\/\">Cloudflare Turnstile<\/a>.<\/li>\n<li>Icons by <a href=\"https:\/\/developer.wordpress.org\/resource\/dashicons\/\">WordPress Dashicons<\/a>.<\/li>\n<\/ul>\n\n<h3>Support<\/h3>\n\n<ul>\n<li>Documentation: <a href=\"https:\/\/wordpress.org\/plugins\/ris-cloudflare-captcha\/\">https:\/\/wordpress.org\/plugins\/ris-cloudflare-captcha\/<\/a><\/li>\n<li>Support forum: <a href=\"https:\/\/wordpress.org\/support\/plugin\/ris-cloudflare-captcha\/\">https:\/\/wordpress.org\/support\/plugin\/ris-cloudflare-captcha\/<\/a><\/li>\n<li>Author website: <a href=\"https:\/\/www.realitsolution.com\/\">https:\/\/www.realitsolution.com\/<\/a><\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin folder to <code>\/wp-content\/plugins\/ris-cloudflare-captcha\/<\/code> or install via the WordPress plugin installer.<\/li>\n<li>Activate the plugin from the <strong>Plugins<\/strong> menu in WordPress.<\/li>\n<li>Go to <strong>RIS CF CAPTCHA<\/strong> in your admin sidebar.<\/li>\n<li>Click <strong>Cloudflare Turnstile<\/strong> in your Cloudflare dashboard and create a new widget.<\/li>\n<li>Copy your <strong>Site Key<\/strong> and <strong>Secret Key<\/strong> and paste them into the plugin settings.<\/li>\n<li>Tick the forms you want to protect.<\/li>\n<li>Click <strong>Save Changes<\/strong>.<\/li>\n<li>Use the <strong>Test Connection<\/strong> button to verify your keys work.<\/li>\n<li>Visit your login page to see Turnstile in action.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20need%20a%20cloudflare%20account%3F\"><h3>Do I need a Cloudflare account?<\/h3><\/dt>\n<dd><p>Yes. Sign up for a free Cloudflare account at <a href=\"https:\/\/www.cloudflare.com\/\">cloudflare.com<\/a> and create a Turnstile widget from the dashboard.<\/p><\/dd>\n<dt id=\"is%20cloudflare%20turnstile%20really%20free%3F\"><h3>Is Cloudflare Turnstile really free?<\/h3><\/dt>\n<dd><p>Yes. Cloudflare Turnstile is 100% free for unlimited use, with no quotas or hidden fees.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20wpforms%3F\"><h3>Does it work with WPForms?<\/h3><\/dt>\n<dd><p>Yes. Enable \"WPForms (all forms)\" in the plugin settings and Turnstile will be added to every WPForms form on your site.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20contact%20form%207%3F\"><h3>Does it work with Contact Form 7?<\/h3><\/dt>\n<dd><p>Not directly, but you can use the <code>[ris_turnstile]<\/code> shortcode in your CF7 form markup or use a CF7 hook to render it.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20woocommerce%3F\"><h3>Does it work with WooCommerce?<\/h3><\/dt>\n<dd><p>The plugin protects WordPress core forms (login, register, lost password, comments). For WooCommerce checkout and account forms, you can use the shortcode <code>[ris_turnstile]<\/code> and the <code>ris_cf_captcha_verify_response<\/code> filter.<\/p><\/dd>\n<dt id=\"is%20it%20gdpr%20compliant%3F\"><h3>Is it GDPR compliant?<\/h3><\/dt>\n<dd><p>Yes. Turnstile is privacy-friendly and the plugin does not store any personal data.<\/p><\/dd>\n<dt id=\"will%20it%20slow%20down%20my%20site%3F\"><h3>Will it slow down my site?<\/h3><\/dt>\n<dd><p>No. The Turnstile script is loaded asynchronously from Cloudflare's CDN and weighs only a few KB.<\/p><\/dd>\n<dt id=\"the%20widget%20isn%27t%20showing%20up.%20what%27s%20wrong%3F\"><h3>The widget isn't showing up. What's wrong?<\/h3><\/dt>\n<dd><ol>\n<li>Make sure you saved your Site Key and Secret Key.<\/li>\n<li>Make sure the relevant form is ticked in \"Enabled Forms\".<\/li>\n<li>Click the <strong>Test Connection<\/strong> button to confirm your keys are valid.<\/li>\n<li>Clear any caching plugin (WP Super Cache, W3 Total Cache, LiteSpeed, etc.).<\/li>\n<li>Check the browser console for JavaScript errors.<\/li>\n<\/ol><\/dd>\n<dt id=\"can%20i%20hide%20the%20turnstile%20badge%3F\"><h3>Can I hide the Turnstile badge?<\/h3><\/dt>\n<dd><p>Yes, there's an option in the Advanced tab. Note that Cloudflare's ToS may require visible attribution - check Cloudflare's current Turnstile terms.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.1 - 2026-06-15<\/h4>\n\n<ul>\n<li><strong>SECURITY<\/strong>: Added server-side Turnstile verification for login form (was previously client-side only).<\/li>\n<li><strong>SECURITY<\/strong>: Added server-side verification for registration, lost password, and comment forms.<\/li>\n<li><strong>SECURITY<\/strong>: Added proper WordPress nonce fields and checks on every form.<\/li>\n<li><strong>SECURITY<\/strong>: Added capability checks and additional sanitization\/escaping throughout.<\/li>\n<li><strong>NEW<\/strong>: Tabbed settings page (Settings \/ Help \/ About).<\/li>\n<li><strong>NEW<\/strong>: \"Test Connection\" button with AJAX verification of API keys.<\/li>\n<li><strong>NEW<\/strong>: Per-form enable\/disable checkboxes (login, register, comment, lost password, WPForms).<\/li>\n<li><strong>NEW<\/strong>: Theme selector (auto \/ light \/ dark).<\/li>\n<li><strong>NEW<\/strong>: Appearance mode selector (always \/ execute \/ interaction-only).<\/li>\n<li><strong>NEW<\/strong>: Widget language selector with 11 languages.<\/li>\n<li><strong>NEW<\/strong>: Shortcode <code>[ris_turnstile action=\"contact\"]<\/code> for custom forms.<\/li>\n<li><strong>NEW<\/strong>: PHP function <code>ris_cf_captcha_render_widget()<\/code> for theme developers.<\/li>\n<li><strong>NEW<\/strong>: Developer filter <code>ris_cf_captcha_verify_response<\/code> for custom verification.<\/li>\n<li><strong>NEW<\/strong>: Activation notice pointing to the settings page.<\/li>\n<li><strong>NEW<\/strong>: \"Settings\" link on the Plugins list page.<\/li>\n<li><strong>NEW<\/strong>: Documentation, Support, and Author links on the Plugins list page.<\/li>\n<li><strong>NEW<\/strong>: Uninstall cleanup that removes all plugin options and transients (including legacy v1.0 options).<\/li>\n<li><strong>NEW<\/strong>: Multisite support in uninstall.<\/li>\n<li><strong>NEW<\/strong>: Better error messages with WordPress-standard markup.<\/li>\n<li><strong>NEW<\/strong>: Optional custom CSS spacing around the widget.<\/li>\n<li><strong>NEW<\/strong>: Optional badge hiding.<\/li>\n<li><strong>IMPROVED<\/strong>: Code refactored into modular, well-documented functions.<\/li>\n<li><strong>IMPROVED<\/strong>: All functions prefixed with <code>ris_cf_captcha_<\/code> for namespacing.<\/li>\n<li><strong>IMPROVED<\/strong>: Translation-ready with proper text domain and \/languages folder.<\/li>\n<li><strong>IMPROVED<\/strong>: WordPress coding standards compliance.<\/li>\n<li><strong>IMPROVED<\/strong>: Bumped to PHP 7.4 minimum, tested up to WordPress 6.5.<\/li>\n<li><strong>SEO<\/strong>: Improved plugin metadata, keywords, and description for better WordPress.org search ranking.<\/li>\n<\/ul>\n\n<h4>1.0 - 2024-XX-XX<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<li>Cloudflare Turnstile widget on WordPress login.<\/li>\n<li>Optional Turnstile on WPForms forms.<\/li>\n<\/ul>","raw_excerpt":"Privacy-friendly Cloudflare Turnstile CAPTCHA for WordPress login, registration, comments &amp; WPForms. Stops bots and spam.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/ja.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/202954","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ja.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/ja.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/ja.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=202954"}],"author":[{"embeddable":true,"href":"https:\/\/ja.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/smartshovon"}],"wp:attachment":[{"href":"https:\/\/ja.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=202954"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/ja.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=202954"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/ja.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=202954"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/ja.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=202954"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/ja.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=202954"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/ja.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=202954"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}