Skip to content

Instantly share code, notes, and snippets.

@AKTed
Last active July 3, 2022 09:45
Show Gist options
  • Star 10 You must be signed in to star a gist
  • Fork 4 You must be signed in to fork a gist
  • Save AKTed/4583267 to your computer and use it in GitHub Desktop.
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…
<?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
@vivekpatil94
Copy link

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