{"id":352510,"date":"2026-08-20T21:31:18","date_gmt":"2026-08-20T21:31:18","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/truemath-captcha-for-elementor-forms\/"},"modified":"2026-08-21T16:28:46","modified_gmt":"2026-08-21T16:28:46","slug":"kianimr-form-arithmetic-challenge-elementor","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/kianimr-form-arithmetic-challenge-elementor\/","author":23389726,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.1","stable_tag":"1.0.1","tested":"7.1","requires":"5.6","requires_php":"7.0","requires_plugins":null,"header_name":"Kianimr Form Arithmetic Challenge for Elementor","header_author":"Mohammadreza Kiani","header_description":"Automatically adds a simple math question to every Elementor form to stop spam. Lightweight, cache-friendly and no third-party service.","assets_banners_color":"908dee","last_updated":"2026-08-21 16:28:46","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/my.wptrue.ir","header_plugin_uri":"","header_author_uri":"https:\/\/my.wptrue.ir","rating":0,"author_block_rating":0,"active_installs":0,"downloads":49,"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":"kianimr","date":"2026-08-20 21:30:49"},"1.0.1":{"tag":"1.0.1","author":"kianimr","date":"2026-08-21 16:28:46"}},"upgrade_notice":{"1.0.1":"<p>Fixes the field layout on right-to-left sites and makes the question readable on dark themes.<\/p>","1.0.0":"<p>First public release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3657863,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3657863,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3657863,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3657863,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0","1.0.1"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3657848,"resolution":"1","location":"assets","locale":"","width":1240,"height":1315},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3657848,"resolution":"2","location":"assets","locale":"","width":2010,"height":1425}},"screenshots":{"1":"The math question added automatically above the submit button of an Elementor form.","2":"The settings screen."}},"plugin_section":[],"plugin_tags":[2656,362,76538,601,599],"plugin_category":[42,44,54],"plugin_contributors":[276716],"plugin_business_model":[],"class_list":["post-352510","plugin","type-plugin","status-publish","hentry","plugin_tags-anti-spam","plugin_tags-captcha","plugin_tags-elementor","plugin_tags-forms","plugin_tags-spam","plugin_category-contact-forms","plugin_category-discussion-and-community","plugin_category-security-and-spam-protection","plugin_contributors-kianimr","plugin_committers-kianimr"],"banners":{"banner":"https:\/\/ps.w.org\/kianimr-form-arithmetic-challenge-elementor\/assets\/banner-772x250.png?rev=3657863","banner_2x":"https:\/\/ps.w.org\/kianimr-form-arithmetic-challenge-elementor\/assets\/banner-1544x500.png?rev=3657863","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/kianimr-form-arithmetic-challenge-elementor\/assets\/icon-128x128.png?rev=3657863","icon_2x":"https:\/\/ps.w.org\/kianimr-form-arithmetic-challenge-elementor\/assets\/icon-256x256.png?rev=3657863","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/kianimr-form-arithmetic-challenge-elementor\/assets\/screenshot-1.png?rev=3657848","caption":"The math question added automatically above the submit button of an Elementor form."},{"src":"https:\/\/ps.w.org\/kianimr-form-arithmetic-challenge-elementor\/assets\/screenshot-2.png?rev=3657848","caption":"The settings screen."}],"raw_content":"<!--section=description-->\n<p>Contact forms attract bots. The usual answer is reCAPTCHA, which loads scripts from a third party, slows the page down and is not reliable everywhere in the world.<\/p>\n\n<p>This plugin takes a smaller approach. It adds a short arithmetic question, such as <code>7 - 6 =<\/code>, to every form built with the Elementor Forms widget. You do not edit a single form: the field places itself right above the submit button, on every form, including forms inside popups and the last step of multi-step forms.<\/p>\n\n<p><strong>How it stays compatible with caching<\/strong><\/p>\n\n<p>The question is never printed into the page HTML. The page ships with an empty placeholder and the browser fetches a signed question separately. That means a cached page can never serve a stale question, and a bot that only reads HTML finds nothing to answer.<\/p>\n\n<p><strong>What it does not do<\/strong><\/p>\n\n<p>No external requests, no tracking, no cookies, no extra database tables. Answers are verified with an HMAC signature, so nothing has to be stored server side.<\/p>\n\n<h4>Features<\/h4>\n\n<ul>\n<li>Added automatically to every Elementor form, with no form editing<\/li>\n<li>Compatible with any page caching plugin<\/li>\n<li>No third-party service and no external requests<\/li>\n<li>No custom database tables<\/li>\n<li>Single use tokens and an attempt limit, so a question cannot be replayed or brute forced<\/li>\n<li>Hidden honeypot field as a second layer<\/li>\n<li>Skips forms that already use reCAPTCHA, hCaptcha or Turnstile<\/li>\n<li>Works with multi-step forms and Elementor popups<\/li>\n<li>admin-ajax fallback for sites where the REST API is disabled<\/li>\n<li>Accepts answers typed with Persian, Arabic-Indic or Latin digits<\/li>\n<li>Inherits your theme's field styling, so it never looks bolted on<\/li>\n<li>Around 3 KB of CSS and 7 KB of JavaScript, loaded only on pages that have a form<\/li>\n<li>Fully translatable through translate.wordpress.org<\/li>\n<\/ul>\n\n<h4>Requirements<\/h4>\n\n<p>Elementor and Elementor Pro must be active, since the Form widget is part of Elementor Pro.<\/p>\n\n<h4>For developers<\/h4>\n\n<p>Two filters are available:<\/p>\n\n<pre><code>apply_filters( 'kianimr_fac_protect_form', true, $widget_id, $form_name )\n<\/code><\/pre>\n\n<p>Return false to leave a specific form untouched. The same filter runs on both the rendering side and the validation side, so a form can never end up locked.<\/p>\n\n<pre><code>apply_filters( 'kianimr_fac_error_message', $message, $code )\n<\/code><\/pre>\n\n<p>Change any error message. Codes are <code>missing<\/code>, <code>malformed<\/code>, <code>expired<\/code>, <code>used<\/code>, <code>mismatch<\/code> and <code>spam<\/code>.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin through Plugins, Add New, Upload Plugin, then activate it.<\/li>\n<li>Open the Arithmetic Challenge menu in the admin sidebar.<\/li>\n<li>The defaults suit most sites. Adjust the number range or wording if you want.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20have%20to%20add%20the%20field%20to%20each%20form%3F\"><h3>Do I have to add the field to each form?<\/h3><\/dt>\n<dd><p>No. Every Elementor form gets the field automatically as soon as the plugin is active.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20caching%20plugins%3F\"><h3>Does it work with caching plugins?<\/h3><\/dt>\n<dd><p>Yes. The question is not part of the cached HTML, so there is nothing to go stale.<\/p><\/dd>\n<dt id=\"how%20do%20i%20exclude%20one%20form%3F\"><h3>How do I exclude one form?<\/h3><\/dt>\n<dd><p>Put the form name or its widget ID in the Excluded forms box on the settings screen.<\/p><\/dd>\n<dt id=\"a%20form%20already%20uses%20recaptcha.%20will%20visitors%20see%20two%20captchas%3F\"><h3>A form already uses reCAPTCHA. Will visitors see two captchas?<\/h3><\/dt>\n<dd><p>No. Forms that already contain a reCAPTCHA, hCaptcha or Turnstile field are skipped by default.<\/p><\/dd>\n<dt id=\"what%20if%20my%20host%20blocks%20the%20rest%20api%3F\"><h3>What if my host blocks the REST API?<\/h3><\/dt>\n<dd><p>The plugin falls back to admin-ajax automatically.<\/p><\/dd>\n<dt id=\"is%20the%20answer%20sent%20to%20the%20browser%3F\"><h3>Is the answer sent to the browser?<\/h3><\/dt>\n<dd><p>No. The browser receives only the question and a signed token. The correct answer never leaves the server.<\/p><\/dd>\n<dt id=\"which%20languages%20are%20included%3F\"><h3>Which languages are included?<\/h3><\/dt>\n<dd><p>English is the source language. Every string is translatable and translations are delivered through translate.wordpress.org. A Persian (fa_IR) translation is provided there by the author.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Right-to-left layout: the question now sits to the left of the answer field instead of being mirrored to the far right.<\/li>\n<li>The question box and the refresh button now use a solid background, so they stay readable on dark themes.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"Adds a simple math question to every Elementor form automatically. Lightweight, cache friendly and with no third-party service.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/352510","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=352510"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/kianimr"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=352510"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=352510"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=352510"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=352510"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=352510"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=352510"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}