{"id":328891,"date":"2026-06-20T19:18:48","date_gmt":"2026-06-20T19:18:48","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/form-captcha-shield\/"},"modified":"2026-06-20T19:18:24","modified_gmt":"2026-06-20T19:18:24","slug":"hsarticle-math-captcha-forms","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/hsarticle-math-captcha-forms\/","author":23464094,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"7.0","requires":"5.5","requires_php":"7.4","requires_plugins":null,"header_name":"HSArticle Math CAPTCHA for Forms","header_author":"HSArticle","header_description":"Math CAPTCHA protection for CF7, WPForms, and any HTML form. Zero config \u2014 add [hs_mcf_captcha] shortcode or use auto-inject from settings.","assets_banners_color":"cfc8f2","last_updated":"2026-06-20 19:18:24","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/hsarticle.com\/form-captcha-shield-wordpress-plugin","header_author_uri":"https:\/\/hsarticle.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":35,"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":"hsarticle","date":"2026-06-20 19:18:24"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3580100,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3580100,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3580100,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3580100,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[166108,362,1152,599,130711],"plugin_category":[44,54],"plugin_contributors":[263778],"plugin_business_model":[],"class_list":["post-328891","plugin","type-plugin","status-publish","hentry","plugin_tags-bot-protection","plugin_tags-captcha","plugin_tags-contact-form-7","plugin_tags-spam","plugin_tags-wpforms","plugin_category-discussion-and-community","plugin_category-security-and-spam-protection","plugin_contributors-hsarticle","plugin_committers-hsarticle"],"banners":{"banner":"https:\/\/ps.w.org\/hsarticle-math-captcha-forms\/assets\/banner-772x250.png?rev=3580100","banner_2x":"https:\/\/ps.w.org\/hsarticle-math-captcha-forms\/assets\/banner-1544x500.png?rev=3580100","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/hsarticle-math-captcha-forms\/assets\/icon-128x128.png?rev=3580100","icon_2x":"https:\/\/ps.w.org\/hsarticle-math-captcha-forms\/assets\/icon-256x256.png?rev=3580100","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>HSArticle Math CAPTCHA for Forms adds a math CAPTCHA to any WordPress form. No API keys. No third-party services. No configuration needed to get started.<\/p>\n\n<p><strong>Features:<\/strong><\/p>\n\n<ul>\n<li>Math CAPTCHA \u2014 addition, subtraction, multiplication with sensible number ranges<\/li>\n<li>Two display modes: distorted canvas image (bot-resistant) or plain text (accessible)<\/li>\n<li>Server-side validation \u2014 answer stored in PHP session with HMAC signature, never exposed to the client<\/li>\n<li>Honeypot field \u2014 silent bot trap alongside the math challenge<\/li>\n<li>Rate limiting \u2014 blocks IPs after 10 failed attempts per 10 minutes<\/li>\n<li>Refresh button \u2014 generate a new question without reloading<\/li>\n<li>WPForms auto inject \u2014 protect any WPForms (free or pro) without adding a shortcode<\/li>\n<li>Registered as a CF7 form tag \u2014 no unknown tag warnings in the CF7 editor<\/li>\n<li>Session only starts on pages that actually contain a form \u2014 no impact on page caching elsewhere<\/li>\n<li>Clean admin page under its own menu \u2014 not buried under Settings<\/li>\n<\/ul>\n\n<p><strong>Supported form plugins:<\/strong><\/p>\n\n<ul>\n<li>Contact Form 7<\/li>\n<li>WPForms (Free and Pro)<\/li>\n<li>Any HTML form via the [hs_mcf_captcha] shortcode<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin folder to \/wp-content\/plugins\/<\/li>\n<li>Activate via the Plugins menu<\/li>\n<li>Go to Math CAPTCHA in the left admin menu<\/li>\n<li>Choose display mode and configure WPForms auto inject if needed<\/li>\n<\/ol>\n\n<p><strong>Contact Form 7:<\/strong> In the form editor add [hs_mcf_captcha] before [submit]<\/p>\n\n<p><strong>WPForms Free:<\/strong> Go to Math CAPTCHA settings and tick the forms you want to protect<\/p>\n\n<p><strong>WPForms Pro:<\/strong> Add an HTML field and paste [hs_mcf_captcha], or use auto inject<\/p>\n\n<p><strong>Any HTML form:<\/strong> <\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20need%20an%20api%20key%3F\"><h3>Does this need an API key?<\/h3><\/dt>\n<dd><p>No. Fully self-hosted, no external services.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20wpforms%20free%3F\"><h3>Does it work with WPForms free?<\/h3><\/dt>\n<dd><p>Yes. Use the auto inject option in plugin settings \u2014 no HTML field required.<\/p><\/dd>\n<dt id=\"is%20it%20gdpr%20friendly%3F\"><h3>Is it GDPR friendly?<\/h3><\/dt>\n<dd><p>Yes. No data is sent to third parties. The answer is stored in a server-side PHP session only and cleared immediately after validation.<\/p><\/dd>\n<dt id=\"does%20it%20affect%20page%20caching%3F\"><h3>Does it affect page caching?<\/h3><\/dt>\n<dd><p>The plugin only starts a PHP session on pages that actually render a form. Pages without a form are not affected. For pages with forms, you should exclude them from full-page caching in your caching plugin (WP Rocket, W3 Total Cache, LiteSpeed Cache, etc.) to ensure the CAPTCHA field ID matches the session. This is standard practice for any form page.<\/p><\/dd>\n<dt id=\"what%20if%20php%20sessions%20are%20disabled%20on%20my%20host%3F\"><h3>What if PHP sessions are disabled on my host?<\/h3><\/dt>\n<dd><p>Most shared hosts have PHP sessions enabled. If CAPTCHA validation always fails, ask your host to confirm sessions are available. Some managed hosts (such as WP Engine) restrict native PHP sessions \u2014 contact their support to enable session handling.<\/p><\/dd>\n<dt id=\"can%20bots%20bypass%20this%3F\"><h3>Can bots bypass this?<\/h3><\/dt>\n<dd><p>Sophisticated bots that render JavaScript and solve math can bypass any math CAPTCHA. This plugin stops the vast majority of spam bots which are simple automated form fillers. Additional layers (honeypot field and IP rate limiting) are built in. For high-security forms consider combining with Cloudflare Turnstile or hCaptcha.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<\/ul>","raw_excerpt":"Math CAPTCHA for CF7, WPForms, and any HTML form. Zero config \u2014 install, add shortcode or use auto inject from settings.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/328891","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=328891"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/hsarticle"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=328891"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=328891"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=328891"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=328891"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=328891"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=328891"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}