-
released this
2026-05-28 03:06:04 +02:00 | 52 commits to main since this releaseWhat's new
👥 Subscribers — WP users now live in the same table
Email-only subscribers and WordPress users now share one unified table. A new WP users filter dropdown lets you scope to: Include (default — both kinds), Only (WP users alone), or Exclude (legacy subscribers-only behaviour). Rows are deduped by email — when a WP user and a subscriber share the same address, the WP user wins (matching what would actually happen at send-time).
New columns in the column picker: Type (Subscriber / WP user pill), Opted-in (✓ — and editable inline-checkbox on WP user rows that saves instantly), Opted-out (✓). A small admin-users glyph next to the email flags WP user rows at a glance even when the Type column is hidden.
The detail modal now opens for both kinds (in-page, no redirect to the WordPress user editor for a quick view), and Prev / Next now walks all visible rows regardless of type — the modal seamlessly transitions from a subscriber to a WP user mid-navigation, with the open row highlighted in the background table.
📋 Bulk actions extended
- Opt-in / Opt-out — applies to both subscribers and WP users in one go.
- Add to list… — pick an eligible list from an inline picker, attach the selection to it.
- Trash / Restore / Delete stay subscribers-only (WP users in a mixed selection are silently skipped).
Layout swap: the bulk-action dropdown is now on the left of the toolbar (matching the Contact Form Submissions layout), with the row-count summary + per-page picker + columns icon clustered on the right.
🔀 Sortable columns plugin-wide
Every table column with a sort indicator (Subscribers, Email Logs, Contact Form Submissions) is now clickable: first click sorts ascending, second flips to descending, third clears. The ▲ / ▼ glyph appears on the active column. Your sort choice persists in a long-lived cookie per table.
📐 Per-page picker — inline, session-cookie
Each list table grows a small Per page dropdown next to the row-count summary (replaces the old admin-level setting in the Logs Storage modal). The choice is stored in a session cookie and falls back to the default when the cookie is gone — no more being silently locked into a stale preference you forgot you set.
🐛 Bug fixes
- Subscriber detail modal & Add subscribers modal: were offering checkboxes for every list in the database — including system lists and WP-user-targeting lists where the toggle had no real effect. Now filtered to manual-membership subscribers-kind lists only, with server-side defence against POST tampering.
- Dashboard had two horizontal divider lines stacked under the page header (page-header bottom border + section-title top border). The section-title's top border is now suppressed when it follows the page header directly.
- CF Submissions sort-by-Date emptied the table (column is
submitted_at, notcreated_at— silent SQL failure). - Email Logs can now be sorted by the To column too (recipient list — lexical sort on the first recipient).
- Confirm prompt modal was anchoring top-left of the viewport instead of being centered — a CSS rule was overriding the modal's flexbox centering.
- Sortable column hover had a slight flicker on first pass — caused by a CSS transition firing before the browser had cached the pseudo-state. Hover swap is now instant.
🎨 Design tokens
A new text-size family —
--etk-text-{xxs, xs, sm, md, lg}(10 / 11 / 12 / 13 / 14px) — joins the existing spacing / radius / shadow / palette tokens inadmin-base.css. This is groundwork for the theme system + density setting coming in v0.4.x and v0.5.x.What's next — v0.4.x
Three meaty pillars:
- Captcha enrichment — Cloudflare Turnstile + Google reCAPTCHA providers, invisible mode support, theme / size customization per identity.
- CSS cleanup — finish migrating every hardcoded chrome value to design tokens, plugin-wide. Prerequisite for the upcoming Theme system (Light / Dark / Auto / LRob / Contrast) + Density setting (Compact / Comfortable / Spacious) in v0.5.x.
- LRob branding — discrete "made with ❤️ by LRob.fr" placements, branded plugin polish.
Full roadmap (v0.4.x → v1.0.0) is locked in
todo.md.Upgrading
Drop-in. No schema migration. Settings preserved. If you had configured Entries per page in the Email Logs Storage modal: that setting is gone (no longer admin-level), and the new inline per-page picker on the list view defaults to 20 — pick your preference once and it'll stick (per browser).
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads