
Have you ever wanted to hide WordPress plugins from the installed plugins list?
If you are a freelancer or run a WordPress agency, then you may want to hide plugins from your clients. There are certain reasons behind hiding plugins for clients or a specific user role. I can mention 3 reasons that I faced while working for a client's website -
Accidental Update: My clients sometimes update plugins without notifying me and that sometimes breaks the website.
Protection: Sometimes I wanted to hide a special plugin from my clients and didn’t want them to know the actual plugin name that I have used.
Finicky Clients: I faced some clients who always question why I installed this plugin, what’s the use of that plugin, why you can’t develop something like WooCommerce for my store?
I used to install plugins, but hide some selected plugins for this type of user.
Your reason may be different then mine, but our goal is the same, and it's to hide WordPress plugins from clients or personal websites.
If you have any other reason, can you drop your reason in the comment box and let us (me and other readers) know about your interesting reason.
Now you know the pros of hiding WordPress plugins, but there a major cons too.
If you want to deactivate a plugin in the future that is hidden, you need to unhide this from your code, and then you will be able to deactivate it. Otherwise, you need to log in to your FTP or cPanel, then rename the plugin folder.
Where there's a challenge, there's always a way forward. To resolve this plugin deactivation issue, I would like to mention the WP Spotlight plugin. You can use the Spotlight search system and deactivate or delete any active or installed plugin from your WordPress Dashboard.
To add WP Spotlight, just navigate to Plugins> Add New and search for WP Spotlight. Install the plugin.
Within the setup wizard you will get a keyboard shortcut to enable the spotlight search enabled in your WordPress Dashboard. For Mac it’s options + S for windows it’s Alt + S.
With the help of WP Spotlight, you can navigate through your WordPress Dashboard easily and take action.
How to Hide a Plugin from the WordPress Plugins List
To hide a plugin from the WordPress plugins list, hook a function to the all_plugins filter and unset the plugin's basename - the folder name, a slash, then the main PHP file, for example woocommerce/woocommerce.php. The plugin keeps running and its admin menus stay where they are; it simply stops appearing under Plugins > Installed Plugins.
How to hide WordPress plugins for all users?
Just copy and paste the following code in your functions.php file (Recommend child Theme). No need to modify the code except one line 'plugin-folder/main-index-file.php', . Here plugin-folder refers the folder name of your installed plugin and main-index-file.php refers the main index file of your plugin.
function hide_specific_plugins_adminify( $plugins ) {
$plugins_to_hide = array(
'plugin-folder/main-index-file.php',
// Add more plugins here if needed.
);
foreach ( $plugins_to_hide as $plugin ) {
if ( isset( $plugins[ $plugin ] ) ) {
unset( $plugins[ $plugin ] );
}
}
return $plugins;
}
add_filter( 'all_plugins', 'hide_specific_plugins_adminify' );For example: WooCoomerce plugins folder name is “woocommerce” and the main file is “woocommerce.php”.
First, check the following screenshot, or you can watch the video on our Facebook page. You will get a clear idea of how to hide any WordPress plugins from your installed plugin library. In the screenshot, you can see that WooCommerce is hidden from the installed plugin page, but you can see all functionality of WooCommerce in the admin menu.

How to hide WordPress plugins for a specific username?
This is one of the most interesting part, you can hide any plugin for specific username. Just copy the following code and paste it inside your functions.php file.
function hide_plugins_for_specific_user_adminify( $plugins ) {
if ( ! is_admin() ) {
return $plugins;
}
$current_user = wp_get_current_user();
if ( 'set-username' === $current_user->user_login ) {
$plugins_to_hide = array(
'woocommerce/woocommerce.php',
// Add additional plugins as needed.
);
foreach ( $plugins_to_hide as $plugin_file ) {
if ( isset( $plugins[ $plugin_file ] ) ) {
unset( $plugins[ $plugin_file ] );
}
}
}
return $plugins;
}
add_filter( 'all_plugins', 'hide_plugins_for_specific_user_adminify' );Those are the two main 2 code snippets I used to hide WordPress plugins from the plugin installed page and make it suitable for my clients.

Where to Put the Code: functions.php or a Must-Use Plugin
Both snippets above run fine from functions.php, but that file belongs to the theme. Switch themes, reset a child theme, or hand the site to a developer who rebuilds the front end, and the hidden plugins quietly come back. A must-use plugin is the more durable home: create wp-content/mu-plugins/hide-plugins.php, add a plugin header and the same function, and WordPress loads it on every request, under every theme, with no activation step and no row in the Plugins list for a client to switch off.
Renaming is the softer sibling of hiding. WP Adminify's plugin white label module changes a plugin's name, logo and description on the Installed Plugins screen, so the client sees your agency's tool rather than a third-party one - and the row stays visible, which means updates keep working normally.
Hide Must-Use and Drop-In Plugins Too
The all_plugins filter only reaches ordinary plugins. Must-use plugins and drop-ins such as object-cache.php get their own tabs on the Plugins screen, fed by a different array. WordPress 6.3 added the plugins_list filter for exactly this: it receives every group at once, keyed as all, mustuse and dropins, so you unset the entry inside whichever group it belongs to.
add_filter( 'plugins_list', function ( $list ) {
unset( $list['mustuse']['hide-plugins.php'] );
return $list;
} );Hide Plugins from Every Admin Except You
Worth knowing before you write role logic: Editors, Authors and Subscribers never see the Plugins screen at all, because it needs the activate_plugins capability that only Administrators hold. So on a client site, "hide from users" almost always means hide from the other administrator - the account you handed over at launch. Inverting the username check does that in one condition.
function hide_plugins_except_me_adminify( $plugins ) {
$my_login = 'your-username';
if ( $my_login === wp_get_current_user()->user_login ) {
return $plugins; // you see everything
}
$plugins_to_hide = array(
'woocommerce/woocommerce.php',
// Add more plugins here if needed.
);
foreach ( $plugins_to_hide as $plugin ) {
unset( $plugins[ $plugin ] );
}
return $plugins;
}
add_filter( 'all_plugins', 'hide_plugins_except_me_adminify' );How to See a Hidden Plugin Again
Because all_plugins is applied by the admin list table and not by get_plugins(), WP-CLI never sees your filter. wp plugin list shows every plugin on the site and wp plugin deactivate woocommerce switches one off, hidden or not - which is the quickest way to recover without editing files. Failing that, comment the snippet out, or rename the plugin folder over SFTP to force a deactivation.
Keep a note of what you hid. Six months later, a plugin that is invisible in wp-admin but still loading is the hardest kind of bug to find, and the person debugging it may not be you.
Let’s Wrap UP!
In summary, hiding WordPress plugins can reduce the plugin list and limit the exposure of internal plugins that aren’t meant for regular interaction. However, deactivating a plugin can make troubleshooting and debugging more challenging.
Hide WordPress Plugins FAQs
How do I hide a plugin from the WordPress plugins list?
Add a function to the all_plugins filter that unsets the plugin's basename, for example woocommerce/woocommerce.php. Put it in a must-use plugin or in your child theme's functions.php. The plugin keeps running and its menus stay visible - it just disappears from Plugins > Installed Plugins.
Should I put the code in functions.php or a must-use plugin?
A must-use plugin at wp-content/mu-plugins/hide-plugins.php is safer. Code in functions.php belongs to the theme, so switching or resetting the theme un-hides everything. Must-use plugins load on every request regardless of theme and cannot be deactivated from the dashboard.
How do I hide plugins from every admin except me?
Invert the username check: return the full plugin array when wp_get_current_user()->user_login matches your own account, and unset the plugins you want hidden for everyone else. Editors and Authors do not need this - they cannot open the Plugins screen at all.
Can I hide a must-use or drop-in plugin from the Plugins page?
Yes, but not with all_plugins. WordPress 6.3 added the plugins_list filter, which receives every group keyed as all, mustuse and dropins. Unset your entry inside the correct group and the tab and its count both update.
How do I deactivate a plugin that is hidden?
Use WP-CLI: wp plugin deactivate woocommerce works even when the plugin is hidden, because the filter only runs in the admin list table. Otherwise comment the snippet out and reload the Plugins screen, or rename the plugin folder over SFTP to force WordPress to deactivate it.
Does hiding a plugin from the list make WordPress more secure?
No. Hiding a plugin from the Plugins screen is housekeeping, not hardening - the files still load, the readme is still public, and a scanner can fingerprint it from the front end. Use it to keep client dashboards calm and prevent accidental deactivation, and rely on updates, roles and a firewall for actual security.
How do I hide a plugin on WordPress Multisite?
The same all_plugins filter runs on each site's Plugins screen and on Network Admin > Plugins, so one must-use plugin in wp-content/mu-plugins/ covers the whole network. Network-activated plugins are usually the ones worth hiding, since site admins cannot deactivate them anyway.
Complete the Client-Ready Dashboard
Hiding plugins is one part of preparing a site for clients. Pair it with the full walkthrough on customizing the WordPress dashboard and white labeling wp-admin so the whole admin area matches your brand. For the end-to-end process - login page, admin logo, footer text, and client emails - follow the white label WordPress guide.



Your email address will not be published