Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
96 commits
Select commit Hold shift + click to select a range
99c3381
Merged internal release changes.
y000yal Sep 10, 2026
804e771
Updated sync file and final merge with v5.2.8.
y000yal Sep 10, 2026
607057d
Merge branch 'master' into develop
iamprazol Sep 11, 2026
e1df39a
Updated develop branch release code.
y000yal Sep 28, 2026
c287f5d
Fix undefined array key warning on subscription cancel with no order …
bhattaganesh Sep 30, 2026
7a8f0bd
#1409 Fix - Cloudflare Turnstile token reused after a failed registra…
MILAN88888 Sep 30, 2026
9d7a790
Fix - Membership Groups status column null post_content warning (#1500)
y000yal Oct 1, 2026
6b07b6b
#1639 Fix - Add missing utm_content to remaining free outbound links …
y000yal Oct 1, 2026
8390cc4
Fix billing emails using wrong order data (#1700) (#1489)
bhattaganesh Oct 1, 2026
f87024b
#1665 Fix - Addons Newest/Oldest crash and Plan/Status/Sort AND filte…
y000yal Oct 1, 2026
00d9261
Fix CSRF protection for bulk user status actions (#1477)
asheshmagar Oct 1, 2026
198e30b
Mask payment gateway secret keys with show/hide toggle (#1653) (#1492)
bhattaganesh Oct 1, 2026
3e1c195
Fix: Delete User does not work from the user edit/view screen (#1435)
y000yal Oct 1, 2026
1c61988
UR-4862: Fix multi-step form rendering step 1 fields inside step 2 (#…
saurab018 Oct 1, 2026
2e6a551
Fix: previous-page login redirect loops back to the login page (#1450)
deepench Oct 1, 2026
e2b0bd9
Drop dead 'failed' subscription-status condition from payment-retry s…
bhattaganesh Oct 1, 2026
b72356a
Fix "Force Captcha" label/tooltip to describe actual no-conflict beha…
bhattaganesh Oct 1, 2026
c4be975
Fix: buying an additional membership ignores the shortcode's own regi…
y000yal Oct 1, 2026
f71b797
Keep untrusted smart-tag values from executing shortcodes (#1478)
asheshmagar Oct 1, 2026
200b7c2
#1508 Fix - Login and account pages served a cached logged in notice …
MILAN88888 Oct 2, 2026
2471f43
#1401 Fix - Profile picture discarded when saving a profile via ajax …
deepench Oct 2, 2026
2aaac11
Fix: cannot disable Stripe when publishable key has wrong prefix (#1433)
y000yal Oct 2, 2026
7abef80
Fix: form import silently wipes non-scalar post meta (#1452)
deepench Oct 2, 2026
075dc04
Exclude pending-cancel subscriptions from the renewal reminder query …
y000yal Oct 2, 2026
59c9604
#1597 Fix - Clarify upgrade path order (highest at top) (#1438)
y000yal Oct 2, 2026
fdd7387
Fix: remove unreachable payment_approval email type (#1444)
y000yal Oct 2, 2026
35cde52
Fix: membership cancellation admin email toggle also disabling user e…
y000yal Oct 2, 2026
24610be
Send member/admin notification when a paid membership downgrades to f…
y000yal Oct 2, 2026
6ef34b5
Fix: payment retries never stop, final-notice email never sent (#1453)
deepench Oct 2, 2026
e2feac9
Constrain public nonce refresh to supported actions and forms (#1480)
asheshmagar Oct 2, 2026
da87fc9
Restrict imported post fields to new registration forms (#1479)
asheshmagar Oct 2, 2026
dbfd7ef
Rebuild Tools (Logs, System Info, Setup Wizard) to match Settings UI …
bhattaganesh Oct 2, 2026
0840031
Fix - Correct Invite Codes upsell copy and show the Popups upsell on …
bhattaganesh Oct 5, 2026
7be4a1e
Fix - Addon install now explains why it fails and the 2FA install but…
bhattaganesh Oct 5, 2026
a155756
Fix - 2FA upsell card heading shows lowercase '2fa' (themegrill/user-…
bhattaganesh Oct 5, 2026
475ebbd
Fix - Login no longer crashes when the Payment Before Login message c…
bhattaganesh Oct 5, 2026
871fa98
Fix - Settings search finds settings inside sections and shows where …
bhattaganesh Oct 5, 2026
3ec75e8
Fix - Login Form Builder's View Live button dead-click zone (#1654) (…
bhattaganesh Oct 5, 2026
fd1cbe7
Fix - Send Test Email ignores the Email Header/Footer template (#1644…
bhattaganesh Oct 6, 2026
bb591b5
Restrict CAPTCHA and login settings writes to declared fields (#1532)
asheshmagar Oct 6, 2026
b2f8f10
Fix - Hide the 'My Account page setting has moved' notice on fresh in…
bhattaganesh Oct 6, 2026
c42e259
Fix - Point the usage tracking 'non-sensitive plugin data' link at th…
bhattaganesh Oct 6, 2026
42c7869
Enhance - Freeze legacy payment fields for new sites, ship Stripe on …
y000yal Oct 6, 2026
e39c583
#1712 Fix - PayPal gateway label casing and payments alignment (#1494)
y000yal Oct 6, 2026
4065a47
#1677 Fix - Deactivation popup X dismisses without deactivating (#1509)
y000yal Oct 6, 2026
0f09bd3
Harden public upload directories against non-image file serving (#1481)
asheshmagar Oct 6, 2026
3312ec7
Fix - My Account highlights the default tab on the bare URL for new i…
bhattaganesh Oct 6, 2026
1913c9a
Fix duplicate Send Test Email requests (#1510)
bhattaganesh Oct 6, 2026
cfe98f7
Fix - Form save blocked and captcha silently skipped when per-form ca…
deepench Oct 6, 2026
52eed3e
Fix license panel UX: confirm before deactivate (#1678) (#1505)
y000yal Oct 6, 2026
0faf672
Fix - Profile screens no longer load the Form Builder, and Analytics …
bhattaganesh Oct 6, 2026
e139c16
Fix - Login and Lost Password forms require a full page reload for re…
bhattaganesh Oct 6, 2026
fab4f8c
Updated sync yml code back to develop.
y000yal Oct 6, 2026
ed35c19
Fix - Form preview no longer loads the Block Editor, and Stripe.js lo…
bhattaganesh Oct 7, 2026
3e98ca7
#1709 Feature - Add coupon usage limit helpers and membership validat…
y000yal Oct 7, 2026
60f0ade
PayPal double charges, dropped renewals, event-ownership and backfill…
bhattaganesh Oct 7, 2026
d0f58d6
Fix - Profile picture upload shows loading state and a remove control…
bhattaganesh Oct 7, 2026
0d3ff56
Fix - JS console runtime defects on Settings and Form Builder pages (…
bhattaganesh Oct 7, 2026
a3b2e77
#1707 Fix - Admin subscription delete cancels at the gateway (#1501)
y000yal Oct 7, 2026
062916e
#1811 Fix - Member's files written to admin when opening member edit …
saurab018 Oct 7, 2026
086b079
Improve Multiple Registration discoverability for single-form setups …
bhattaganesh Oct 7, 2026
b9f628e
Fix - Explain content rule precedence in the rule editor, keep it unc…
deepench Oct 7, 2026
cbfe505
Fix - Null-check deleted registration form before file cleanup on use…
bhattaganesh Oct 7, 2026
72f9a7b
Fix - Show the add-on's full name on locked settings cards for licens…
bhattaganesh Oct 7, 2026
ae66b1e
Dev - Add payment health counts to usage tracking payload (#1484)
y000yal Oct 7, 2026
3bce7c5
#1717 Fix - Handle Stripe and PayPal chargebacks/disputes (#1497)
y000yal Oct 7, 2026
9713113
Sanitize member names and escape admin name output (#1517)
asheshmagar Oct 7, 2026
a502a23
feat: expose shared read-only registration abilities (#1702) (#1485)
asheshmagar Oct 7, 2026
3248360
Restore $args inside template include closure for pre-5.2.0 overrides…
y000yal Oct 7, 2026
b508282
Fix - Remove legacy DB update admin notice; auto-sync instead (#1538)
y000yal Oct 7, 2026
6429f1f
Enforce content restriction in feeds and public discovery (#1519)
asheshmagar Oct 7, 2026
374f4de
Harden registration checkbox values and verify the submission nonce (…
asheshmagar Oct 7, 2026
4f8c953
Authorize and sanitize Content Restriction metadata (#1516)
asheshmagar Oct 7, 2026
71a322b
Fix - Add show/hide toggle to secret fields in setup wizard payment s…
bhattaganesh Oct 7, 2026
e196992
Fix - Show the renewal and upgrade form for My Account links (#1873) …
y000yal Oct 7, 2026
470b02a
Site Assistant: Link Existing Users (#1745) (#1537)
bhattaganesh Oct 7, 2026
465ad72
Fix - Front-end form accessibility (WCAG 2.2 AA) (themegrill/user-reg…
bhattaganesh Oct 7, 2026
ecc3d51
Fix content restriction bypass in WooCommerce REST responses (#1536)
asheshmagar Oct 7, 2026
f1ccb53
fix: harden shared frontend tax inputs (#1533)
asheshmagar Oct 7, 2026
9753928
Enhancement - Simplify setup wizard to one membership question (theme…
bhattaganesh Oct 7, 2026
ef7091a
#1701 Fix - Recover renewal/expiring reminder emails after missed cro…
y000yal Oct 7, 2026
7e45fe4
Fix: hold membership expiry while Stripe is still collecting a failed…
y000yal Oct 7, 2026
a534480
Fix - Resolve the PaymentIntent of a paid Stripe renewal on API versi…
bhattaganesh Oct 8, 2026
d6044e1
Fix - Keep the setup wizard answer picked before it finishes loading …
bhattaganesh Oct 8, 2026
14b5d03
#1685 Fix - Cancel membership on full Stripe refund (#1493)
y000yal Oct 8, 2026
3f1c181
Fix - Content rules not restricting WooCommerce product purchase (the…
bhattaganesh Oct 8, 2026
63d045e
Fix - Skip entries that are not invoices when listing a member's paym…
y000yal Oct 8, 2026
9b18843
Fix - Upgrade form price handling and duplicate Payment History rows …
bhattaganesh Oct 8, 2026
8ed0d4b
Fix - Form payment View link missing type=form and uses id=0 (#1498)
y000yal Oct 8, 2026
97bca03
Fix - Call the AJAX class by its namespace and show the gateway's mes…
y000yal Oct 8, 2026
e570428
Fix - Recover paid Stripe renewals in the missed-payment backfill, ke…
bhattaganesh Oct 8, 2026
989bca3
Final version bump to v5.3.0 for public release.
y000yal Oct 8, 2026
04ec4d9
Fix - Front-end form inputs show a double border on focus (themegrill…
bhattaganesh Oct 8, 2026
8e8517a
Test - Assert the login field focus ring has no offset gap (themegril…
bhattaganesh Oct 8, 2026
24cb892
Fix - Keep the focus ring gap on submit inputs and give the #1896 che…
bhattaganesh Oct 8, 2026
89e5f47
Merge v5.3.0 into fix/1896-frontend-input-double-focus-border
bhattaganesh Oct 8, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion assets/css/user-registration-rtl.css

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion assets/css/user-registration.css

Large diffs are not rendered by default.

7 changes: 7 additions & 0 deletions assets/css/user-registration.scss
Original file line number Diff line number Diff line change
Expand Up @@ -4023,6 +4023,13 @@ body.user-registration-page {
outline-offset: 2px;
}

// Bordered fields already turn the border primary on focus; no gap keeps it one ring.
input:not([type="radio"]):not([type="checkbox"]):not([type="submit"]):not([type="button"]):not([type="reset"]):not([type="file"]):not([type="range"]):not([type="color"]):not([type="image"]):focus-visible,
textarea:focus-visible,
select:focus-visible {
outline-offset: 0;
Comment thread
bhattaganesh marked this conversation as resolved.
}

input[type="radio"]:focus-visible,
input[type="checkbox"]:focus-visible {
outline-style: auto !important;
Expand Down
24 changes: 24 additions & 0 deletions tests/e2e/specs/login-forms.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -113,6 +113,30 @@ test.describe("login methods @fresh", () => {
).toHaveCSS("outline-style", "solid");
await visitor.close();
});

/**
* @area login-forms
* @tier fresh
* @guards #1896
* @source verify-fix 2026-10-08
* @why A focused login field showed its primary border and, 2px outside it,
* the focus ring, which read as a double border. The ring now sits
* flush against the border on bordered fields while the submit button
* keeps its gap. Asserts only that offset, not the ring's colour.
*/
test("a focused login field has no gap between its border and focus ring @fresh @login-forms", async ({ browser }) => {
const visitor = await newVisitor(browser);
const guest = await visitor.newPage();
await guest.goto("/my-account/");

await guest.locator("#username").focus();
await expect(guest.locator("#username")).toHaveCSS("outline-offset", "0px");

const submit = guest.locator(".ur-frontend-form button[type=submit], .ur-frontend-form .ur-submit-button").first();
await submit.focus();
await expect(submit).not.toHaveCSS("outline-offset", "0px");
await visitor.close();
});
});

/**
Expand Down
Loading