How to Hide Update Notifications in the WordPress Dashboard

How to Hide Update Notifications in the WordPress Dashboard
On this page
  1. Why Hide Update Notifications From Some Users
  2. Step 1: Whitelist the Users Who Should Still See Updates
  3. Troubleshooting
  4. Frequently Asked Questions
  5. Conclusion

You can hide update notifications in the WordPress dashboard for everyone except a trusted admin by filtering the update transients and clearing the red counters in the sidebar, so shop managers and editors stop seeing “Update Now” prompts they shouldn’t act on.

Why Hide Update Notifications From Some Users

  • Untrained staff sometimes click “Update Now” without testing on staging first, which can break a live WooCommerce store
  • Update nags distract shop managers who only need access to orders and content
  • You want one technical contact controlling exactly when updates happen
  • A cleaner dashboard keeps non-technical team members focused on their own tasks

Step 1: Whitelist the Users Who Should Still See Updates

The snippet below checks the logged-in user’s username against an approved list. Anyone not on that list has the core, plugin, and theme update transients replaced with “already up to date” data, and the numeric badges next to Plugins and Updates are cleared.

PHP
/** Hide plugin, theme, and core update alerts for everyone except approved usernames */
add_action( 'admin_init', 'restrict_dashboard_update_alerts' );

function restrict_dashboard_update_alerts() {
    global $menu, $submenu;
    $current_user = wp_get_current_user();

    // Usernames who are still allowed to see update notices
    $trusted_users = array( 'siteadmin', 'devlead' );

    if ( $current_user && isset( $current_user->user_login ) && ! in_array( $current_user->user_login, $trusted_users, true ) ) {
        add_filter( 'pre_site_transient_update_core', 'suppress_update_transient_data' );
        add_filter( 'pre_site_transient_update_plugins', 'suppress_update_transient_data' );
        add_filter( 'pre_site_transient_update_themes', 'suppress_update_transient_data' );

        if ( isset( $menu[65][0] ) ) {
            $menu[65][0] = 'Plugins';
        }
        if ( isset( $submenu['index.php'][10][0] ) ) {
            $submenu['index.php'][10][0] = 'Updates';
        }
    }
}

function suppress_update_transient_data() {
    global $wp_version;
    return (object) array(
        'last_checked'    => time(),
        'version_checked' => $wp_version,
    );
}

Restricting by Role Instead of Username

If your team changes often, checking a capability is easier to maintain than hardcoding usernames.

PHP
/** Alternative: only administrators see update notices, everyone else does not */
if ( $current_user && ! in_array( 'administrator', (array) $current_user->roles, true ) ) {
    // ...apply the same three add_filter() calls shown above
}

Troubleshooting

Notifications still show up after saving the snippet

Log out and back in, and if you run an object cache or page cache plugin, flush it — cached transients can linger for a few minutes after the filters are added.

The menu counters reappear after a plugin update

The numeric index for the Plugins menu ($menu[65]) can shift when other plugins register their own top-level menu items. If the counters come back, dump $menu with error_log( print_r( $menu, true ) ) to find the current index.

Frequently Asked Questions

Will this stop WordPress from actually installing updates?

No. It only hides the visual notices for the usernames you exclude. Anyone still on the trusted list, or your staging/update process, can install updates as normal.

Can I hide notifications for a whole role instead of individual usernames?

Yes — swap the username check for a role check, for example testing whether administrator is missing from $current_user->roles.

Does this interfere with automatic security releases?

No. Automatic background updates for minor and security releases still run normally; this snippet only affects the notices shown in wp-admin.

Conclusion

Filtering the update transients is a lightweight way to hide update notifications in the WordPress dashboard without installing another admin plugin. Whitelist the handful of people who actually manage updates, keep everyone else’s dashboard quiet, and always test real updates on staging first.

See also How to Update a Self-Hosted Plugin From the WordPress Dashboard.

Prefer no code? All-in-One Utilities handles this kind of change from a settings screen. Its Updates guide also shows how.

Leave a Reply

Schedule a call