Toggle Admin Notices
Toggle Admin Notices
Description
Toggle Admin Notices cleans up your WordPress dashboard by grouping admin notices according to the plugin or theme that produced them. Each group is collapsible, and every notice can be snoozed for a chosen duration or permanently dismissed — all on a per-user basis.
Features
- Group by source — notices are organised into collapsible panels labelled with the real plugin/theme display name (read directly from plugin headers).
- Per-user preferences — dismissals and snoozes are stored in user meta, so each admin user has independent control.
- Flexible snooze durations — choose to snooze a notice for 1 hour, 1 day, or 1 week.
- Permanent dismiss — hide a notice for good (for your account).
- Auto-deduplication — identical notices shown multiple times are collapsed automatically.
- Covers all notice hooks — intercepts both
admin_noticesandall_admin_notices. - Settings page — view how many notices are dismissed and reset them with one click (Settings Admin Notices).
- PHP 8.4 compatible — uses typed properties,
str_starts_with(), and avoids all deprecated patterns. - Accessible — keyboard-navigable group toggles with proper
aria-expandedattributes and visible focus rings.
Installation
- Upload the plugin folder to
/wp-content/plugins/, or install it directly from the WordPress plugin directory. - Activate the plugin from the Plugins screen.
- That’s it — your admin notices will automatically be grouped.
To reset dismissed notices, go to Settings Admin Notices.
Faq
No. Critical WordPress core updates and fatal error warnings use dedicated hooks that are not intercepted.
Yes. The plugin hooks into admin_notices and all_admin_notices, which are the standard WordPress notice APIs used by nearly all plugins and themes.
Dismissals are stored in user meta (wp_usermeta), so they are per-user. Resetting them is available on Settings Admin Notices.
It works on individual sites within a multisite network. Network-wide notice management is not yet supported.
No. Notice interception uses PHP output buffering (fast), and DOM reorganisation is handled client-side with a small vanilla-jQuery script loaded only in the admin area.
Reviews
Changelog
1.1.0
- New: Multiple snooze durations — 1 hour, 1 day, or 1 week (previously fixed at 1 day).
- New: Settings page under Settings Admin Notices to view and reset dismissed notices.
- New: “Settings” quick-link on the Plugins screen row.
- New: Per-user storage via
user_metainstead of a shared site option, giving each admin independent control. - New: Also intercepts
all_admin_noticeshook (previously onlyadmin_notices). - New: Plugin display names are now resolved from actual plugin headers via
get_plugins(). - Improved: JavaScript refactored — proper
escAttrhelper, keyboard accessibility (Enter/Spacetoggles),aria-expandedsupport, and live group-count updates after dismissal. - Improved: CSS updated with accessible focus rings, flexbox action bar, and RTL-friendly spacing.
- Improved: PHP 8.4 compatibility — typed class properties,
str_starts_with(),ReflectionExceptioncatch,Closure::fromCallable()for named-function reflection. - Improved: Groups with a single notice are auto-expanded on load.
- Fixed: Empty groups are now removed from the DOM after their last notice is dismissed.
1.0.0
- Initial release.
- Added functionality to group notices by plugin/theme.
- Added ‘Snooze’ for 24 hours feature.
- Added permanent ‘Dismiss’ feature.
- Added auto-deduplication of identical notices.