Insira em sua functions.php
function restore_default_roles_and_capabilities() {
// Obtém o objeto global de roles
if (!class_exists('WP_Roles')) {
return;
}
global $wp_roles;
if (!isset($wp_roles)) {
$wp_roles = new WP_Roles();
}
// Remove todas as roles personalizadas que não sejam as padrão do WordPress
$default_roles = array('administrator', 'editor', 'author', 'contributor', 'subscriber');
foreach ($wp_roles->roles as $role => $details) {
if (!in_array($role, $default_roles)) {
remove_role($role);
}
}
// Restaura os nomes das roles padrão
$default_role_names = array(
'administrator' => 'Administrator',
'editor' => 'Editor',
'author' => 'Author',
'contributor' => 'Contributor',
'subscriber' => 'Subscriber',
);
foreach ($default_role_names as $role => $name) {
if (isset($wp_roles->roles[$role])) {
$wp_roles->roles[$role]['name'] = $name;
$wp_roles->role_names[$role] = $name;
}
}
// Remove filtros e ações personalizados que possam ter sido adicionados
remove_filter('editable_roles', 'cliente_digital_filter_editable_roles');
remove_filter('map_meta_cap', 'cliente_digital_map_meta_cap', 10);
remove_action('pre_user_query', 'exclude_administrators_from_user_list');
remove_filter('views_users', 'adjust_user_counts');
// Reseta todas as roles e capacidades para o padrão do WordPress
if (function_exists('populate_roles')) {
populate_roles(); // Recria todas as roles e suas capacidades padrão
}
// Reinstala as permissões padrão para administradores
$admin_role = get_role('administrator');
if ($admin_role) {
$capabilities = array(
'activate_plugins', 'delete_others_pages', 'delete_others_posts', 'delete_pages',
'delete_plugins', 'delete_posts', 'delete_private_pages', 'delete_private_posts',
'delete_published_pages', 'delete_published_posts', 'edit_files', 'edit_others_pages',
'edit_others_posts', 'edit_pages', 'edit_plugins', 'edit_posts', 'edit_private_pages',
'edit_private_posts', 'edit_published_pages', 'edit_published_posts', 'edit_theme_options',
'export', 'import', 'list_users', 'manage_categories', 'manage_links', 'manage_options',
'moderate_comments', 'promote_users', 'publish_pages', 'publish_posts', 'read',
'read_private_pages', 'read_private_posts', 'remove_users', 'switch_themes',
'unfiltered_html', 'update_core', 'update_plugins', 'update_themes', 'upload_files',
'install_plugins', 'install_themes', 'create_users', 'delete_users', 'edit_users'
);
foreach ($capabilities as $cap) {
$admin_role->add_cap($cap);
}
}
// Reseta as capacidades individuais dos usuários
$users = get_users();
foreach ($users as $user) {
$wp_user = new WP_User($user->ID);
$wp_user->remove_all_caps();
// Garante que os administradores mantenham a role correta
if (in_array('administrator', $user->roles)) {
$wp_user->set_role('administrator');
} elseif (in_array('editor', $user->roles)) {
$wp_user->set_role('editor');
} elseif (in_array('author', $user->roles)) {
$wp_user->set_role('author');
} elseif (in_array('contributor', $user->roles)) {
$wp_user->set_role('contributor');
} elseif (in_array('subscriber', $user->roles)) {
$wp_user->set_role('subscriber');
}
}
}
add_action('admin_init', 'restore_default_roles_and_capabilities');