Multi-Form Anti-Spam Image CAPTCHA

Leírás

Multi-Form Anti-Spam Image CAPTCHA adds a fast, accessible icon challenge — paired with honeypots and a submission speed check — to the form plugins and WordPress core screens spambots love to abuse. Users select the requested icon to verify; every challenge is generated server-side with a hashed answer so bots cannot scrape the correct option from the markup.

This 2.0.0 release merges every feature from the former Pro add-on into the free plugin.

Integrations

  • Gravity Forms — drag the MultiForm Image CAPTCHA field into any form
  • Contact Form 7 — insert the [pbmfasic] form-tag (a one-click tag generator is included)
  • WPForms — drag the MultiForm Anti-Spam Image CAPTCHA field into any form
  • Formidable Forms — drop [pbmfasic] inside an HTML field
  • Elementor Pro Forms — drop [pbmfasic] inside an HTML widget
  • WooCommerce — toggle CAPTCHA on the Login, Registration, and classic shortcode Checkout forms (the block-based Checkout Block is not yet supported)
  • WordPress login, registration, lost-password and reset-password forms
  • WordPress comments

Spam protection

  • Hashed, server-side icon challenge with per-render tamper tokens
  • Honeypot fields plus a reverse-honeypot trap that catches bots that auto-fill every field
  • Submission-speed check rejects bot-fast submissions
  • Daily cleanup of stale CAPTCHA records
  • Optional „disable for logged-in users” toggle

Styling and icons

  • Switch between Font Awesome icon fonts (bundled) and 780+ bundled SVG icons
  • Full styling controls: colors, borders, padding, font size, layout, alignment
  • Custom prompt text and custom error messages
  • Toggle mode hides the CAPTCHA until the user starts interacting with the form

Accessibility

  • Keyboard-navigable radio buttons with ARIA labels
  • Screen-reader instructions and audio cues (audio plays the icon name and a correct/wrong tone)

Privacy

The plugin does not call any external services and does not send data off your site. CAPTCHA records are stored in a custom table on your own database and purged automatically every 24 hours.

Developer hooks

  • pbmfasic_skip_wp_login_option — filter whether validation runs on WordPress login, registration, lost-password and reset-password forms
  • pbmfasic_skip_validation — filter whether validation should be skipped for the current request
  • pbmfasic_force_synchronous_render — return true to render the CAPTCHA inline instead of lazy-loading it via AJAX, useful when a form submits over a custom AJAX flow that needs the CAPTCHA fields present at first paint

Credits

This plugin bundles the following third-party assets, all under licenses compatible with the GPL v3:

  • Font Awesome 4.7.0 — http://fontawesome.io — Font: SIL OFL 1.1, CSS: MIT License. Files: css/fontawesome.css, fonts/fontawesome-webfont.*, fonts/FontAwesome.otf.
  • Font Awesome SVG icons (svgs/) — derived from the Font Awesome 4.7 free icon set — License: CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/).
  • Audio: „Failure 01” by rhodesmas — https://freesound.org/s/342756/ — License: CC BY 4.0. Used as audio/wrong.mp3 (trimmed).
  • Audio: „Success 04” by rhodesmas — https://freesound.org/s/322929/ — License: CC BY 4.0. Used as audio/correct.mp3 (trimmed).

The plugin source code is distributed under the GNU GPL v3 (see LICENSE).

Képernyőmentések

  • CAPTCHA for Contact Form 7.
  • CAPTCHA for WPForms.
  • CAPTCHA for Formidable Forms.

Telepítés

  1. Upload the plugin to /wp-content/plugins/ and activate it from the Plugins screen.
  2. Go to Settings MultiForm Anti-Spam Image CAPTCHA and configure styling, icon mode and integrations.
  3. Drop the CAPTCHA into your forms:
    • Gravity Forms / WPForms — drag the MultiForm Anti-Spam Image CAPTCHA field into your form.
    • Contact Form 7 — click the form-tag button or paste [pbmfasic] into your form.
    • Formidable, Elementor Pro — paste [pbmfasic] into an HTML field or widget.
    • WooCommerce, WordPress login, comments — enable the matching checkboxes on the General tab.

GYIK

Does this plugin call any third-party service?

No. Everything runs on your server. There are no remote API calls, telemetry pings, or external assets.

Will it work with caching plugins and CDNs?

Yes. The CAPTCHA is validated server-side and supports AJAX lazy loading, so cached pages continue to work.

Can I use my own icons?

Yes. Enable Choose Default Icons on the General tab to provide your own icon names and titles. With SVG mode on, the plugin looks for a matching file in the bundled svgs/ directory or for an attachment with the same slug.

Is it accessible?

Yes. The challenge uses keyboard-friendly radio buttons, ARIA labels and a screen-reader helper that plays the icon name aloud.

Can I disable the CAPTCHA for logged-in users?

Yes. The General tab includes a Disable for logged in users toggle.

What does the submission speed check do?

When enabled, the plugin rejects submissions completed faster than your configured millisecond threshold (measured between CAPTCHA render and submit). Most legitimate users take well over a second.

Does it support WPML?

Yes. The plugin ships with a wpml-config.xml file that exposes the configurable prompt and error strings for translation.

Does it work with WooCommerce’s block-based Checkout?

Not yet. The WooCommerce integration covers the My Account login and registration screens (both classic and block versions) and the classic shortcode [woocommerce_checkout] page. The block-based Checkout Block submits orders through the WooCommerce Store API, which bypasses the action hooks the CAPTCHA renders and validates against. If your store uses the Checkout Block, switch the checkout page back to the classic [woocommerce_checkout] shortcode for CAPTCHA protection, or leave the Checkout Block in place and protect the other forms only. Block-based Checkout support is on the roadmap.

I previously used the Pro add-on. What do I need to do?

Deactivate MultiForm Anti-Spam Image CAPTCHA Pro (the plugin in pb-multiform-anti-spam-image-captcha-pro/). All of its features are now part of the free 2.0.0 release. Pro-specific settings are not migrated — review the General tab and re-configure styling, icons and integrations to taste.

Vélemények

Nincsenek értékelések erről a bővítményről.

Közreműködők és fejlesztők

“Multi-Form Anti-Spam Image CAPTCHA” egy nyílt forráskódú szoftver. A bővítményhez a következő személyek járultak hozzá:

Közreműködők

Változási napló

2.0.0 – Jun 5, 2026

  • New – Merged every feature from the former Multi-Form Anti-Spam Image CAPTCHA Pro add-on into the free plugin: Gravity Forms field, Elementor Pro Forms validation, WooCommerce login/registration/checkout, WordPress login/registration/lost-password/reset, native WordPress comments, audio accessibility, 780+ bundled SVG icons, full styling controls, custom-icon picker, reverse honeypot, submission speed check, AJAX lazy loading and JSON settings export/import.
  • New – Added a per-render tamper token that blocks stripped or modified CAPTCHA fields.
  • New – Added the pbmfasic_skip_wp_login_option, pbmfasic_skip_validation and pbmfasic_force_synchronous_render developer filters.
  • Enhancement – Standardized every plugin option under the pbmfasic_ prefix and removed the global pre_option_* filter shim used by the legacy Pro plugin.
  • Enhancement – Rebuilt the settings page with a dedicated Styling tab and a grouped General tab (Form Integrations, Spam Protection, Loading and Difficulty, Icon Set, Custom Messages, Credit Link) alongside Installation Instructions and Tools.
  • Enhancement – Replaced the „—” placeholder rows on the Styling dropdowns with real defaults (Display Style: Full width, Icon Alignment: Left, Icon Border: Show, Border Style: Solid, Text Align: Left, Icon Title Style: Normal, Text Location: Above icons).
  • Enhancement – Selected captcha icons now get a visible default border highlight (WP-admin blue) so clicks register without first configuring the color pickers.
  • Enhancement – Submission Speed Check threshold defaults to 2000 ms; enabling the check no longer silently passes every submission when the value was never saved.
  • Enhancement – Replaced the inverted „Disable Honeypot” toggle with a positive-sense „Enable honeypot fields (recommended)” checkbox.
  • Enhancement – Comment-form CAPTCHA failures now render WordPress’s standard „Comment Submission Failure” page (with native Back-button recovery) instead of a custom error screen.
  • Enhancement – Hardened output escaping, input sanitization, nonce verification and $wpdb prepared statements across the codebase.
  • Enhancement – Made the „Powered by” footer link opt-in and disabled by default.
  • Fix – Audio AJAX endpoint URL now includes the missing = after t, so the per-radio audio file loads correctly in every browser.
  • Fix – Gravity Forms editor shows a CAPTCHA placeholder instead of attempting to render the live challenge inside the form builder.
  • Fix – Contact Form 7 validation errors are now anchored to the CAPTCHA field instead of falling back to the generic „One or more fields have an error” tip.
  • Security – Capped the audio AJAX endpoint to one response per captcha key so bots cannot enumerate which radio is correct by comparing response sizes between probes.
  • Security – Public [pbmfasic-svg] shortcode now sanitizes inline SVG output with wp_kses() for every caller, not just the captcha renderer.
  • Security – Wrapped the translatable „Select the %s to verify.” prompt in wp_kses_post() so a hostile translation cannot inject HTML or JavaScript.
  • Security – Validator::sanitize_post_value() rejects array values so a pbmfasic_captcha[]=foo payload no longer feeds sanitize_text_field() an array.
  • i18n – Display name updated to „Multi-Form Anti-Spam Image CAPTCHA”. Plugin slug, text domain and stored option keys are unchanged.

1.0.2 – Mar 5, 2026

  • Fix – Contact Form 7 validation errors now correctly highlight the CAPTCHA field instead of displaying generically.
  • Fix – Multiple CAPTCHAs on the same page now work independently with correct screen-reader associations.
  • Enhancement – Improved compatibility with form plugin stylesheets for icon radio-button display.

1.0.1 – Dec 11, 2025

  • Enhancement – Rebranded plugin to MultiForm Anti-Spam Image CAPTCHA.
  • Fix – Corrected database table prefixes preventing validation on some installs.

1.0.0 – Dec 3, 2025

  • New – Initial release.