Skip to content

Release 1.24.0 - #69

Merged
forgetso merged 5 commits into
releasefrom
main
Oct 29, 2026
Merged

forgetso merged 5 commits into
releasefrom
main

Conversation

@forgetso

Copy link
Copy Markdown
Member

Releases 1.24.0 (#67, #68).

  • IP matching is off by default. 1.23.0 sent the visitor IP, which can reject real visitors behind Cloudflare. It's now the "Visitor IP matching" setting, off by default.
  • Fresh captcha after AJAX submissions in 12 form plugins.
  • Public JS events: prosopo-procaptcha:filled, :cleared and :reset.
  • Failed-verification logging, plus the verification_result action.
  • Fixes: User Registration AJAX login; Spectra with several forms on a page; widget errors no longer clear a valid token.

The e2e "wrong value" tests are currently failing on every branch, including 1.23.0's own code. /siteverify times out from the GitHub runners: the CI debug.log shows cURL error 28 after 20s. Merged on request, so the IP-matching fix ships quickly.

🤖 Generated with Claude Code

forgetso and others added 5 commits October 29, 2026 14:01
…logging

Reset the captcha after AJAX submissions, public JS events, log failed verifications (1.24.0)
…lookup with several forms

- User Registration's AJAX login posts only its own fields, so the
  wp_authenticate_user check never saw procaptcha-response and rejected
  every login. A jQuery prefilter now adds the token from the login form,
  and a failed login resets the widget.
- Spectra reads hidden fields via getElementById('hidden'), which returns
  the first match on the page, so a second Spectra form (or one with its
  own hidden field first) sent the wrong or no token. Our input no longer
  has that id; a hidden element whose id is the field name lets Spectra's
  per-form loop send the form's own value.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Sending `ip` to /siteverify turns on IP matching, which rejects real
visitors when the IP differs from the one that solved the captcha. Most
sites are behind Cloudflare, where REMOTE_ADDR is Cloudflare's address,
so 1.23.0's default could reject legitimate submissions.

- New "Visitor IP matching" select on the General tab, off by default:
  Cloudflare (CF-Connecting-IP), another proxy (first X-Forwarded-For
  address) or a direct connection (REMOTE_ADDR).
- The prosopo/procaptcha/visitor_ip filter now receives the IP from that
  setting (empty when off) plus REMOTE_ADDR, and can still override it.
- Unit tests for each source, the default and the filter.
- Translations for the new strings in de, es, fr, it and pt.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The widget calls error-callback for failed background requests too (e.g.
the detector bundle or frictionless calls to the provider), which don't
invalidate a token the visitor already has. Clearing our custom input on
those emptied valid tokens in JS-driven forms; CI hit this with Formidable
whenever the provider was unreachable. Expiry and reset still clear it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…and-spectra

Turn off IP matching by default (setting), fix User Registration AJAX login and Spectra with several forms
@forgetso
forgetso merged commit 1092d88 into release Oct 29, 2026
9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant