You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
Added
Updates from GitHub Releases (#66). WordPress offers new versions on its normal update screen, checks the package's SHA-256 before installing it, and reads the compatibility fields and upgrade notice from the release's own readme.txt. Ported from Free Form Certificate.
Choose which roles view and manage the plugin (#91). Settings → Access, for administrators only, grants a role View (read-only screens) or Manage (settings, sources, templates, bulk actions, message bodies). SMTP accounts, Export / Import and the bodies of one-time account-link emails stay administrator-only.
Search and date range on the Log and Retention lists (#83). Search matches recipient and subject, the dates select a range of days, and both combine with the status and source filters. The filters live in the page address, so pagination and bulk actions keep them.
Block on alert (#84). An opt-in setting under Alerts switches the Operation Mode to Block when the queue alert fires, so a sudden flood stops leaving the site until someone has looked. The alert email says so, and an admin notice stays until the mode changes.
Password resets go out in Block mode (#84). Block holds every other email, but a held password reset locks its user out, so it is sent at once unless the new setting is turned off. A disabled Password reset source still stops it.
On/off settings are toggle switches that save on flip (#89). Alerts, Block on alert, Password resets, SMTP Debug Log and the Templates switches save the moment they change, with a Saved badge; the SMTP account and source forms use the same switches and keep their Save button.
Dark mode (#68). Off, On or Follow the system, restyling only the plugin's screens. The submenus become a vertical tab column that keeps every URL, and the menu icon follows the admin colour scheme.
A Documentation tab (#71, #77, #78). The plugin ships its own guide, grouped by tab in menu order under a searchable navigation tree, with Troubleshooting in place of the FAQ and a "Back to top" button on every screen.
Development workflow (#64, #74, #75, #94). CI on PHP 8.1–8.4 with ESLint, Stylelint and Composer checks; develop deploys to the testes site behind a smoke check; a v* tag publishes the release zip, and older tags can be published by hand without becoming the latest.
Changed
Minimum PHP is now 8.1 (#64), was 7.4. Composer already required it, and 7.4 and 8.0 are out of security support.
Admin screens laid out as cards with icon headings (#68, #76). Settings is grouped into Sending, Log, Alerts, Advanced and Appearance, Log and Retention columns can be hidden from Screen Options, and every colour comes from a token checked against WCAG AA.
The changelog follows Free Form Certificate's format (#80, #79, #93). Every version carries its date and the commit its tag sits on, lists what that commit shipped, and the pre-fork history credits the original plugin and its developer.
Fixed
A retried email keeps its attachments (#81). Files staged for a failed send were deleted before the retry; they now go only when the email is sent, fails for good or is deleted. Resend and Force Resend keep the source and its priority.
Attachment staging is all or nothing (#81). A failed copy no longer queues a broken attachment, same-named files no longer overwrite each other, blocked emails stage nothing, and only folders inside the staging directory are ever deleted.
Emails to long recipient lists are stored whole (#82). The recipient column held 255 characters, so a longer list was cut off and the email reached only part of it, or failed. The column is now text, widened in place on upgrade.
Deleting the plugin removes everything it wrote (#71, #84, #91). The template settings, the WordPress-version marker, the auto-block marker and the role capabilities are removed too, and a test checks every option the plugin writes.