---
title: Hide WordPress Plugins from Other Admins
date: 2025-06-15T18:58:21Z
modified: 2025-06-15T19:22:48Z
permalink: "https://techarticles.co.uk/hide-wordpress-plugins-from-other-admins/"
type: post
status: publish
excerpt: ""
wpid: 5352
categories:
  - Automation
  - Coding
  - Plugins
  - Wordpress
timestamp: 2025-06-15T19:22:48Z
tags:
  - Automation
  - Coding
  - Plugins
  - Wordpress
---

I saw a post on the Sure Crafted Facebook group about hiding Otto kit ([SureTriggers](https://ta0.uk/suretriggers)) from other admins they didn’t want people interfering with the workflows but they needed admin access.

I answered this post saying I am sure it could be done with a snippet and said I would look at it as soon as i got some time well its been a few weeks and i’ve been super busy but I had a spare hour tonight and began working on a solution and that solution is below.

The truth is you will never be able to totally stop an admin user or someone with FTP access from getting to something in WordPress but you can me it a little harder the following code in a mu-plugin is how I would achieve this.

It is a simple 5 step process

1. only run the code if I am not the designated otto admin
2. Remove [Ottokit](https://ta0.uk/OttoKit) from the plugin list
3. remove its row in the activate/ deactivate and settings links
4. remove its admin / menu and page
5. block direct access to its pages
6. hide this mu-plugin.

<?php // 1) Only run for other users function only\_hide\_for\_others() { return get\_current\_user\_id() !== 1; // change “1” to your user ID if different } // 2) Remove plugin from Plugins list add\_filter( ‘all\_plugins’, function( $plugins ){ if ( only\_hide\_for\_others() ) { unset( $plugins\[‘suretriggers/suretriggers.php’\] ); } return $plugins; }); // 3) Remove its row-actions (activate/deactivate/settings links) add\_filter( ‘plugin\_action\_links\_suretriggers/suretriggers.php’, function( $actions ){ if ( only\_hide\_for\_others() ) { return \[\]; // hide all links } return $actions; }, 10, 1 ); // 4) Remove its admin menu/page add\_action( ‘admin\_menu’, function(){ if ( only\_hide\_for\_others() ) { remove\_menu\_page( ‘suretriggers’ ); // top-level //remove\_submenu\_page( ‘tools.php’, ‘my-plugin-slug’ ); // if under Tools } }, 999 ); // 5) Block direct URL access to its pages add\_action( ‘admin\_init’, function(){ if ( only\_hide\_for\_others() && isset( $\_GET\[‘page’\] ) && $\_GET\[‘page’\] === ‘admin.php?page=suretriggers’ ) { wp\_safe\_redirect( admin\_url() ); exit; } }); add\_filter( ‘plugins\_list’, function( $plugins ) { if ( only\_hide\_for\_others() ) { // ‘mustuse’ is the slice of the list for MU-plugins // replace ‘mu-helper.php’ with \*your\* filename unset( $plugins\[‘mustuse’\]\[‘otto.php’\] ); } return $plugins; }, 10, 1 );```
<span class="line"><span style="color: #F97583"><?</span><span style="color: #79B8FF">php</span></span>
<span class="line"><span style="color: #6A737D">// 1) Only run for other users</span></span>
<span class="line"><span style="color: #F97583">function</span><span style="color: #E1E4E8"> </span><span style="color: #B392F0">only_hide_for_others</span><span style="color: #E1E4E8">() {</span></span>
<span class="line"><span style="color: #E1E4E8">    </span><span style="color: #F97583">return</span><span style="color: #E1E4E8"> </span><span style="color: #B392F0">get_current_user_id</span><span style="color: #E1E4E8">() </span><span style="color: #F97583">!==</span><span style="color: #E1E4E8"> </span><span style="color: #79B8FF">1</span><span style="color: #E1E4E8">; </span><span style="color: #6A737D">// change "1" to your user ID if different</span></span>
<span class="line"><span style="color: #E1E4E8">}</span></span>
<span class="line"></span>
<span class="line"><span style="color: #6A737D">// 2) Remove plugin from Plugins list</span></span>
<span class="line"><span style="color: #B392F0">add_filter</span><span style="color: #E1E4E8">( </span><span style="color: #9ECBFF">'all_plugins'</span><span style="color: #E1E4E8">, </span><span style="color: #F97583">function</span><span style="color: #E1E4E8">( $plugins ){</span></span>
<span class="line"><span style="color: #E1E4E8">    </span><span style="color: #F97583">if</span><span style="color: #E1E4E8"> ( </span><span style="color: #B392F0">only_hide_for_others</span><span style="color: #E1E4E8">() ) {</span></span>
<span class="line"><span style="color: #E1E4E8">        </span><span style="color: #79B8FF">unset</span><span style="color: #E1E4E8">( $plugins[</span><span style="color: #9ECBFF">'suretriggers/suretriggers.php'</span><span style="color: #E1E4E8">] ); </span></span>
<span class="line"><span style="color: #E1E4E8">    }</span></span>
<span class="line"><span style="color: #E1E4E8">    </span><span style="color: #F97583">return</span><span style="color: #E1E4E8"> $plugins;</span></span>
<span class="line"><span style="color: #E1E4E8">});</span></span>
<span class="line"></span>
<span class="line"><span style="color: #6A737D">// 3) Remove its row-actions (activate/deactivate/settings links)</span></span>
<span class="line"><span style="color: #B392F0">add_filter</span><span style="color: #E1E4E8">( </span><span style="color: #9ECBFF">'plugin_action_links_suretriggers/suretriggers.php'</span><span style="color: #E1E4E8">, </span><span style="color: #F97583">function</span><span style="color: #E1E4E8">( $actions ){</span></span>
<span class="line"><span style="color: #E1E4E8">    </span><span style="color: #F97583">if</span><span style="color: #E1E4E8"> ( </span><span style="color: #B392F0">only_hide_for_others</span><span style="color: #E1E4E8">() ) {</span></span>
<span class="line"><span style="color: #E1E4E8">        </span><span style="color: #F97583">return</span><span style="color: #E1E4E8"> []; </span><span style="color: #6A737D">// hide all links</span></span>
<span class="line"><span style="color: #E1E4E8">    }</span></span>
<span class="line"><span style="color: #E1E4E8">    </span><span style="color: #F97583">return</span><span style="color: #E1E4E8"> $actions;</span></span>
<span class="line"><span style="color: #E1E4E8">}, </span><span style="color: #79B8FF">10</span><span style="color: #E1E4E8">, </span><span style="color: #79B8FF">1</span><span style="color: #E1E4E8"> );</span></span>
<span class="line"></span>
<span class="line"><span style="color: #6A737D">// 4) Remove its admin menu/page</span></span>
<span class="line"><span style="color: #B392F0">add_action</span><span style="color: #E1E4E8">( </span><span style="color: #9ECBFF">'admin_menu'</span><span style="color: #E1E4E8">, </span><span style="color: #F97583">function</span><span style="color: #E1E4E8">(){</span></span>
<span class="line"><span style="color: #E1E4E8">    </span><span style="color: #F97583">if</span><span style="color: #E1E4E8"> ( </span><span style="color: #B392F0">only_hide_for_others</span><span style="color: #E1E4E8">() ) {</span></span>
<span class="line"><span style="color: #E1E4E8">        </span><span style="color: #B392F0">remove_menu_page</span><span style="color: #E1E4E8">( </span><span style="color: #9ECBFF">'suretriggers'</span><span style="color: #E1E4E8"> );           </span><span style="color: #6A737D">// top-level</span></span>
<span class="line"><span style="color: #E1E4E8">        </span><span style="color: #6A737D">//remove_submenu_page( 'tools.php', 'my-plugin-slug' ); // if under Tools</span></span>
<span class="line"><span style="color: #E1E4E8">       </span></span>
<span class="line"><span style="color: #E1E4E8">    }</span></span>
<span class="line"><span style="color: #E1E4E8">}, </span><span style="color: #79B8FF">999</span><span style="color: #E1E4E8"> );</span></span>
<span class="line"></span>
<span class="line"><span style="color: #6A737D">// 5) Block direct URL access to its pages</span></span>
<span class="line"><span style="color: #B392F0">add_action</span><span style="color: #E1E4E8">( </span><span style="color: #9ECBFF">'admin_init'</span><span style="color: #E1E4E8">, </span><span style="color: #F97583">function</span><span style="color: #E1E4E8">(){</span></span>
<span class="line"><span style="color: #E1E4E8">    </span><span style="color: #F97583">if</span><span style="color: #E1E4E8"> ( </span><span style="color: #B392F0">only_hide_for_others</span><span style="color: #E1E4E8">() </span><span style="color: #F97583">&&</span><span style="color: #E1E4E8"> </span><span style="color: #79B8FF">isset</span><span style="color: #E1E4E8">( $_GET[</span><span style="color: #9ECBFF">'page'</span><span style="color: #E1E4E8">] ) </span><span style="color: #F97583">&&</span><span style="color: #E1E4E8"> $_GET[</span><span style="color: #9ECBFF">'page'</span><span style="color: #E1E4E8">] </span><span style="color: #F97583">===</span><span style="color: #E1E4E8"> </span><span style="color: #9ECBFF">'admin.php?page=suretriggers'</span><span style="color: #E1E4E8"> ) {</span></span>
<span class="line"><span style="color: #E1E4E8">        </span><span style="color: #B392F0">wp_safe_redirect</span><span style="color: #E1E4E8">( </span><span style="color: #B392F0">admin_url</span><span style="color: #E1E4E8">() );</span></span>
<span class="line"><span style="color: #E1E4E8">        </span><span style="color: #F97583">exit</span><span style="color: #E1E4E8">;</span></span>
<span class="line"><span style="color: #E1E4E8">    }</span></span>
<span class="line"><span style="color: #E1E4E8">});</span></span>
<span class="line"></span>
<span class="line"><span style="color: #B392F0">add_filter</span><span style="color: #E1E4E8">( </span><span style="color: #9ECBFF">'plugins_list'</span><span style="color: #E1E4E8">, </span><span style="color: #F97583">function</span><span style="color: #E1E4E8">( $plugins ) {</span></span>
<span class="line"><span style="color: #E1E4E8">    </span><span style="color: #F97583">if</span><span style="color: #E1E4E8"> ( </span><span style="color: #B392F0">only_hide_for_others</span><span style="color: #E1E4E8">() ) {</span></span>
<span class="line"><span style="color: #E1E4E8">        </span><span style="color: #6A737D">// 'mustuse' is the slice of the list for MU-plugins</span></span>
<span class="line"><span style="color: #E1E4E8">        </span><span style="color: #6A737D">// replace 'mu-helper.php' with *your* filename</span></span>
<span class="line"><span style="color: #E1E4E8">        </span><span style="color: #79B8FF">unset</span><span style="color: #E1E4E8">( $plugins[</span><span style="color: #9ECBFF">'mustuse'</span><span style="color: #E1E4E8">][</span><span style="color: #9ECBFF">'otto.php'</span><span style="color: #E1E4E8">] );</span></span>
<span class="line"><span style="color: #E1E4E8">    }</span></span>
<span class="line"><span style="color: #E1E4E8">    </span><span style="color: #F97583">return</span><span style="color: #E1E4E8"> $plugins;</span></span>
<span class="line"><span style="color: #E1E4E8">}, </span><span style="color: #79B8FF">10</span><span style="color: #E1E4E8">, </span><span style="color: #79B8FF">1</span><span style="color: #E1E4E8"> );</span></span>
```PHP