WDD Admin Cleaner

Stop unwanted update checks, remove dashboard widget clutter, and hide non-essential admin notices — all from one settings screen.

Version 1.0.0 Requires WordPress 6.0+ Requires PHP 7.4+ License GPLv2 or later Settings → Admin Cleaner
14
Individual toggles
3
Focus areas
0
Frontend scripts or styles
1
Row added to wp_options

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

  1. Upload the wdd-admin-cleaner folder to /wp-content/plugins/, or install the zip directly via Plugins → Add New → Upload Plugin.
  2. Activate the plugin from the Plugins screen. Default settings are applied automatically — no setup is required before it starts working.
  3. 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.

SettingDefaultWhat 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.

SettingDefaultWhat 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.

SettingDefaultWhat 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.

WP RocketNo effect on caching or page rendering
ElementorNo shared hooks or editor conflicts
WooCommerceStore-facing pages untouched
Any optimization pluginNothing to conflict with on the frontend

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/
├── 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 section
  • wp_dashboard_setup, welcome_panel — Dashboard section
  • in_admin_header, admin_notices, all_admin_notices, network_admin_notices, user_admin_notices — Admin Notices section
  • admin_post_wdd_ac_reset_settings — Reset to Default handler