{"id":112470,"date":"2019-11-13T12:10:09","date_gmt":"2019-11-13T12:10:09","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/system-admin\/"},"modified":"2026-06-20T00:05:13","modified_gmt":"2026-06-20T00:05:13","slug":"system-admin","status":"publish","type":"plugin","link":"https:\/\/id.wordpress.org\/plugins\/system-admin\/","author":13354429,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"2.1","stable_tag":"2.1","tested":"7.0","requires":"6.0","requires_php":"8.0","requires_plugins":null,"header_name":"System Admin","header_author":"Jason Mcgwier","header_description":"This plugin creates a new role (sysadmin), extending the admin role by offering custom privileges that enable hiding options from other users, including administrators.","assets_banners_color":"","last_updated":"2026-06-20 00:05:13","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/mcgwier.com","header_plugin_uri":"","header_author_uri":"https:\/\/mcgwier.com","rating":0,"author_block_rating":0,"active_installs":10,"downloads":1304,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"2.1":{"tag":"2.1","author":"papermud","date":"2026-06-20 00:05:13"}},"upgrade_notice":[],"ratings":[],"assets_icons":[],"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["2.1"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[83,3787,1865,54318,178526],"plugin_category":[43],"plugin_contributors":[],"plugin_business_model":[],"class_list":["post-112470","plugin","type-plugin","status-publish","hentry","plugin_tags-admin","plugin_tags-hide-menu","plugin_tags-menu","plugin_tags-sysadmin","plugin_tags-system-admin","plugin_category-customization","plugin_committers-papermud"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/s.w.org\/plugins\/geopattern-icon\/system-admin.svg","icon_2x":false,"generated":true},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Extends the admin role with a new, awesomer role called 'Sysadmin'. This new role gives you a menu of options to hide menu and\/or sub-menu items in the admin from all other users (e.g. Themes, Theme Editor, Plugin Editor, etc.) Very useful when restricting major changes or updates from clients or administrators.<\/p>\n\n<h4>Special Features<\/h4>\n\n<ul>\n<li>Disable core update<\/li>\n<li>Disable plugin update<\/li>\n<li>Disable theme update<\/li>\n<li>Disable admin bar<\/li>\n<\/ul>\n\n<h3>Uninstall<\/h3>\n\n<p>Just deactivate and delete plugin. This will re-assign Sysadmin role as Administrator and remove all options (unhiding hidden menu items, etc.)<\/p>\n\n<!--section=installation-->\n<p>Activate, promote yourself, set your options, high five.<\/p>\n\n<ol>\n<li>Upload <code>system-admin<\/code> to the <code>\/wp-content\/plugins\/<\/code> directory<\/li>\n<li>Activate the plugin through the 'Plugins' menu in WordPress<\/li>\n<li>Promote yourself to Sysadmin and visit System Admin, select your desired options, save changes.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"is%20there%20a%20premium%20version%3F\"><h3>Is there a premium version?<\/h3><\/dt>\n<dd><p>No. All that this plugin does is included in this version. Nothing hidden to be gained.<\/p><\/dd>\n<dt id=\"does%20this%20plugin%20add%20redirects%3F\"><h3>Does this plugin add redirects?<\/h3><\/dt>\n<dd><p>No. Simply hides the menu items. You can still access the direct URI (intentional fallback).<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>2.1<\/h4>\n\n<ul>\n<li>Fixed: Sysadmin users could lose wp-admin access after self-promotion in some environments.<\/li>\n<li>Fixed: Promote Self now preserves Administrator role compatibility on promotion.<\/li>\n<li>Fixed: Sysadmin custom capabilities are now re-applied defensively during role sync.<\/li>\n<li>Fixed: Direct URL admin-menu enforcement now includes a role-based Sysadmin fallback check.<\/li>\n<\/ul>\n\n<h4>2.0<\/h4>\n\n<ul>\n<li>Compatibility with WordPress 6.6, 6.7, 6.8, and 7.0<\/li>\n<li>Fixed: Check All \/ Uncheck All \/ Toggle All buttons broken since WP 5.6 (jQuery 3 .prop() fix)<\/li>\n<li>Fixed: CSRF nonce protection added to Plugins and Admin Menu settings forms<\/li>\n<li>Fixed: Nonce now required to use the Promote Self page<\/li>\n<li>Fixed: Admin notice HTML updated to modern notice classes (notice-error, notice-success)<\/li>\n<li>Fixed: load_plugin_textdomain now hooked to init for WP 6.7+ JIT translation loading<\/li>\n<li>Fixed: register_setting now includes a sanitize_callback and type (WP 5.5+)<\/li>\n<li>Fixed: All dynamic output now escaped with esc_html() and esc_url()<\/li>\n<li>Fixed: Admin page titles updated from h2 to h1 (WP 3.8+)<\/li>\n<li>Fixed: user_has_cap filter callbacks accept the 4th $user argument<\/li>\n<li>Improved: Removed deprecated &amp;$this pattern from all hook registrations (PHP 8.x)<\/li>\n<li>Improved: JMSA_AdminMenu declares $menu_original and $submenu_original explicitly (PHP 8.2+)<\/li>\n<li>Improved: WP_User_Query now uses get_results() instead of direct property access<\/li>\n<li>Improved: wp_roles() replaces manual WP_Roles instantiation<\/li>\n<li>Improved: All plugin options cleaned up on uninstall (added jmsa_version)<\/li>\n<li>Requires WordPress 6.0 or later<\/li>\n<li>Requires PHP 8.0 or later<\/li>\n<\/ul>\n\n<h4>1.0<\/h4>\n\n<ul>\n<li>Init to Winit<\/li>\n<\/ul>","raw_excerpt":"This plugin creates a new role (sysadmin), extending the admin role by offering custom privileges that enable hiding options from other users, includi &hellip;","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/id.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/112470","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/id.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/id.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/id.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=112470"}],"author":[{"embeddable":true,"href":"https:\/\/id.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/papermud"}],"wp:attachment":[{"href":"https:\/\/id.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=112470"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/id.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=112470"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/id.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=112470"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/id.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=112470"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/id.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=112470"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/id.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=112470"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}