Last active
July 3, 2022 09:45
-
-
Save AKTed/4583267 to your computer and use it in GitHub Desktop.
The following code will reset a WordPress default role to it's default capabilities. Note: these defaults are for WordPress 3.5, any other versions might have different defaults. To be safe, only use this code on WordPress 3.5. Warning: This cannot be undone! The role, in it's current state, is removed and recreated with the WordPress default ro…
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/* | |
* example usage: $results = reset_role_WPSE_82378( 'subscriber' ); | |
* per add_role() (WordPress Codex), $results "Returns a WP_Role object | |
* on success, null if that role already exists." | |
* | |
* possible $role values: | |
* 'administrator' | |
* 'editor' | |
* 'author' | |
* 'contributor' | |
* 'subscriber' | |
*/ | |
function reset_role_akrr( $role ) { | |
$default_roles = array( | |
'administrator' => array( | |
'switch_themes' => 1, | |
'edit_themes' => 1, | |
'activate_plugins' => 1, | |
'edit_plugins' => 1, | |
'edit_users' => 1, | |
'edit_files' => 1, | |
'manage_options' => 1, | |
'moderate_comments' => 1, | |
'manage_categories' => 1, | |
'manage_links' => 1, | |
'upload_files' => 1, | |
'import' => 1, | |
'unfiltered_html' => 1, | |
'edit_posts' => 1, | |
'edit_others_posts' => 1, | |
'edit_published_posts' => 1, | |
'publish_posts' => 1, | |
'edit_pages' => 1, | |
'read' => 1, | |
'level_10' => 1, | |
'level_9' => 1, | |
'level_8' => 1, | |
'level_7' => 1, | |
'level_6' => 1, | |
'level_5' => 1, | |
'level_4' => 1, | |
'level_3' => 1, | |
'level_2' => 1, | |
'level_1' => 1, | |
'level_0' => 1, | |
'edit_others_pages' => 1, | |
'edit_published_pages' => 1, | |
'publish_pages' => 1, | |
'delete_pages' => 1, | |
'delete_others_pages' => 1, | |
'delete_published_pages' => 1, | |
'delete_posts' => 1, | |
'delete_others_posts' => 1, | |
'delete_published_posts' => 1, | |
'delete_private_posts' => 1, | |
'edit_private_posts' => 1, | |
'read_private_posts' => 1, | |
'delete_private_pages' => 1, | |
'edit_private_pages' => 1, | |
'read_private_pages' => 1, | |
'delete_users' => 1, | |
'create_users' => 1, | |
'unfiltered_upload' => 1, | |
'edit_dashboard' => 1, | |
'update_plugins' => 1, | |
'delete_plugins' => 1, | |
'install_plugins' => 1, | |
'update_themes' => 1, | |
'install_themes' => 1, | |
'update_core' => 1, | |
'list_users' => 1, | |
'remove_users' => 1, | |
'add_users' => 1, | |
'promote_users' => 1, | |
'edit_theme_options' => 1, | |
'delete_themes' => 1, | |
'export' => 1, | |
), | |
'editor' => array( | |
'moderate_comments' => 1, | |
'manage_categories' => 1, | |
'manage_links' => 1, | |
'upload_files' => 1, | |
'unfiltered_html' => 1, | |
'edit_posts' => 1, | |
'edit_others_posts' => 1, | |
'edit_published_posts' => 1, | |
'publish_posts' => 1, | |
'edit_pages' => 1, | |
'read' => 1, | |
'level_7' => 1, | |
'level_6' => 1, | |
'level_5' => 1, | |
'level_4' => 1, | |
'level_3' => 1, | |
'level_2' => 1, | |
'level_1' => 1, | |
'level_0' => 1, | |
'edit_others_pages' => 1, | |
'edit_published_pages' => 1, | |
'publish_pages' => 1, | |
'delete_pages' => 1, | |
'delete_others_pages' => 1, | |
'delete_published_pages' => 1, | |
'delete_posts' => 1, | |
'delete_others_posts' => 1, | |
'delete_published_posts' => 1, | |
'delete_private_posts' => 1, | |
'edit_private_posts' => 1, | |
'read_private_posts' => 1, | |
'delete_private_pages' => 1, | |
'edit_private_pages' => 1, | |
'read_private_pages' => 1, | |
), | |
'author' => array( | |
'upload_files' => 1, | |
'edit_posts' => 1, | |
'edit_published_posts' => 1, | |
'publish_posts' => 1, | |
'read' => 1, | |
'level_2' => 1, | |
'level_1' => 1, | |
'level_0' => 1, | |
'delete_posts' => 1, | |
'delete_published_posts' => 1, | |
), | |
'contributor' => array( | |
'edit_posts' => 1, | |
'read' => 1, | |
'level_1' => 1, | |
'level_0' => 1, | |
'delete_posts' => 1, | |
), | |
'subscriber' => array( | |
'read' => 1, | |
'level_0' => 1, | |
), | |
'display_name' => array( | |
'administrator' => 'Administrator', | |
'editor' => 'Editor', | |
'author' => 'Author', | |
'contributor' => 'Contributor', | |
'subscriber' => 'Subscriber', | |
), | |
); | |
$role = strtolower( $role ); | |
remove_role( $role ); | |
return add_role( $role, $default_roles['display_name'][$role], $default_roles[$role] ); | |
} // function reset_role_akrr |
slapped that into my theme's functions.php file, and added reset_role_akrr('administrator');
and it restored the administrator's caps. Beauty
if ( !function_exists( 'populate_roles' ) ) {
require_once( ABSPATH . 'wp-admin/includes/schema.php' );
}
populate_roles();
Ah, this save me as well! Works perfectly on later versions of WP.
Can anyone guide me how to use this file. Tried in functions.php of theme file but not impact.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Hi,
How do I use it?
Simply adding to my theme's function.php?
Thank you