WDD Admin Cleaner
Stop unwanted update checks, remove dashboard widget clutter, and hide non-essential admin notices — all from one settings screen.
Overview
Admin Cleaner gives you one place to control three separate things in wp-admin, each handled by its own dedicated part of the plugin:
Updates
Fully disable core, plugin, theme, or translation update checks — not just hide the notice about them.
Dashboard
Remove the Welcome Panel, Activity, Quick Draft, Events & News, Site Health, and At a Glance widgets from the main Dashboard screen.
Admin Notices
Hide non-critical notices from other plugins and themes, split into plugin-origin, theme-origin, promotional, and review-request categories — while always keeping error notices visible.
How It Works
Each section uses a different mechanism, chosen to match what it's actually doing rather than one blunt approach applied everywhere.
Updates — filtering, not blocking
Each Updates toggle filters WordPress's own update data every time something reads it, clearing out the specific piece that says an update is available. The scheduled background checks that populate this data keep running exactly as normal — turning a setting back off restores full visibility immediately, with nothing cached or stale to wait out.
Dashboard — removing, not hiding with CSS
Five of the six Dashboard toggles remove official WordPress widgets using the same mechanism WordPress itself uses internally, so there's no leftover empty box or flash of content. The Welcome Panel isn't built as a widget, so it uses its own dedicated removal hook. Nothing outside the main Dashboard screen is touched.
Admin Notices — origin-aware, not blanket suppression
Rather than hiding every notice on a page indiscriminately, Admin Cleaner checks which file each notice actually comes from before deciding anything. Notices built into WordPress core are never touched. Notices from plugin or theme files are evaluated individually, and any notice marked as an error or warning is always shown, no matter which toggles are on.
Installation
- Upload the
wdd-admin-cleanerfolder to/wp-content/plugins/, or install the zip directly via Plugins → Add New → Upload Plugin. - Activate the plugin from the Plugins screen. Default settings are applied automatically — no setup is required before it starts working.
- Visit Settings → Admin Cleaner to review or adjust the toggles.
Settings Reference — Updates
Every toggle in this section defaults to off. Disabling update checks — especially for core — is a deliberate, security-relevant choice, so it's always something you opt into rather than something a fresh install does silently.
| Setting | Default | What it does |
|---|---|---|
| Disable Core Updates | Off | Stops WordPress core update checks and notices, including automatic security updates. |
| Disable Plugin Updates | Off | Stops WordPress from flagging or auto-installing plugin updates. |
| Disable Theme Updates | Off | Stops WordPress from flagging or auto-installing theme updates. |
| Disable Translation Updates | Off | Stops WordPress from checking for updated translation files. |
Security note. Core updates and core security updates share the same underlying check. Turning on Disable Core Updates suppresses both — WordPress will not flag or install a security release for as long as this is on.
Disable Core Updates and Disable Translation Updates can be toggled independently of one another; enabling one does not affect the other.
Settings Reference — Dashboard
Every toggle in this section defaults to on. Removing a dashboard widget is purely cosmetic and carries no security trade-off, so a clean Dashboard out of the box is the intended starting point.
| Setting | Default | What it does |
|---|---|---|
| Remove Welcome Panel | On | Removes the "Welcome to WordPress" panel at the top of the Dashboard. |
| Remove Activity Widget | On | Removes the Activity widget (recent posts and comments). |
| Remove Quick Draft | On | Removes the Quick Draft widget. |
| Remove Events & News | On | Removes the WordPress Events and News widget. |
| Remove Site Health | On | Removes the Site Health Status widget from the Dashboard. The full Site Health page under Tools is unaffected. |
| Remove At a Glance | On | Removes the At a Glance widget (post/page counts and current theme). |
Settings Reference — Admin Notices
Every toggle in this section defaults to on. Error and warning notices are always shown regardless of these settings — there is no way to accidentally hide something that genuinely needs attention.
| Setting | Default | What it does |
|---|---|---|
| Hide Plugin Notices | On | Hides non-error admin notices generated by other plugins. |
| Hide Theme Notices | On | Hides non-error admin notices generated by the active theme. |
| Hide Promotional Notices | On | Hides upsell and "go premium" style notices from plugins and themes, identified by common phrasing. |
| Hide Review Requests | On | Hides "please leave us a review" style notices from plugins and themes, identified by common phrasing. |
A note on the promotional / review-request detection
These two categories are identified by matching common phrasing (things like "upgrade to pro" or "leave us a review"). It's a practical heuristic, not a guarantee — most real-world notices of these kinds are caught, but an unusually worded one could occasionally slip through. Plugin-origin and theme-origin detection, by contrast, is exact: it's based on which file the notice actually comes from, not on guessing from its wording.
Compatibility & Performance
Every hook this plugin uses runs only inside wp-admin. There is no code on the public-facing side of the site at all.
Uninstalling
Deactivating the plugin leaves your saved settings in place, in case you reactivate it later.
Deleting it from the Plugins screen removes the single option it stores. On a multisite network, this is repeated for every site automatically — no manual cleanup is needed on any individual site.
FAQ
If I leave "Disable Core Updates" off, will I still get notified about updates?
Yes — WordPress behaves exactly as it normally would, including the usual update nags and automatic security updates.
Does disabling core updates also stop security updates?
Yes. Both rely on the same underlying check, which is exactly why this toggle defaults to off rather than on.
Will I still see important notices from other plugins?
Yes. Anything carrying an error or warning class is always shown, regardless of your Admin Notices settings.
Does removing a Dashboard widget affect it anywhere else?
No. Removing Site Health from the Dashboard, for example, has no effect on the full Site Health page under Tools.
Does this plugin slow down my site?
No. Every feature runs only inside wp-admin — there's nothing added to the public-facing side, so caching and optimization plugins are unaffected.
Changelog
1.0.0
Initial release, expanded from the original WDD Disable Notifications concept into three sections: Updates, Dashboard, and Admin Notices.
For Developers
Internal reference for whoever maintains or extends this plugin next.
File structure
├── wdd-admin-cleaner.php — header, constants, bootstrap
├── uninstall.php
├── readme.txt
├── includes/
│ ├── class-wdd-ac-core.php — singleton, wiring, activation
│ ├── class-wdd-ac-settings.php — Settings API, sections, reset handler
│ ├── class-wdd-ac-updates.php — transient filtering
│ ├── class-wdd-ac-dashboard.php — widget/panel removal
│ └── class-wdd-ac-notices.php — reflection-based notice filtering
└── assets/css/admin.css — settings-page styling only
Key constants & storage
WDD_AC_VERSION, WDD_AC_PLUGIN_FILE, WDD_AC_PLUGIN_DIR, WDD_AC_PLUGIN_URL, WDD_AC_PLUGIN_BASENAME — namespaced with _AC_ rather than a shared WDD_PLUGIN_* name, so this plugin can't collide with constants from another WDD plugin active on the same install.
All settings live in a single option, wdd_ac_settings, as one array of 14 0/1 values.
Hooks used
site_transient_update_core,site_transient_update_plugins,site_transient_update_themes— Updates sectionwp_dashboard_setup,welcome_panel— Dashboard sectionin_admin_header,admin_notices,all_admin_notices,network_admin_notices,user_admin_notices— Admin Notices sectionadmin_post_wdd_ac_reset_settings— Reset to Default handler