-
-
Save alispx/4630ec67c708795aac7a 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 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment