User Role Editor

Description

User Role Editor WordPress plugin allows you to change user roles and capabilities easy.
Just turn on check boxes of capabilities you wish to add to the selected role and click « Update » button to save your changes. That’s done.
Add new roles and customize its capabilities according to your needs, from scratch of as a copy of other existing role.
Unnecessary self-made role can be deleted if there are no users whom such role is assigned.
Role assigned every new created user by default may be changed too.
Capabilities could be assigned on per user basis. Multiple roles could be assigned to user simultaneously.
You can add new capabilities and remove unnecessary capabilities which could be left from uninstalled plugins.
Multi-site support is provided.

To read more about ‘User Role Editor’ visit this page

Do you need more functionality with quality support in a real time? Do you wish to remove advertisements from User Role Editor pages?
Buy Pro version.
User Role Editor Pro includes extra modules:

  • Block selected admin menu items for role.
  • Hide selected front-end menu items for no logged-in visitors, logged-in users, roles.
  • Block selected widgets under « Appearance » menu for role.
  • Affiche les widgets côté internaute pour les rôles sélectionnés.
  • Bloquer les boîte de métadonnées sélectionnées (tableau de bord, articles, pages, types de publication personnalisés) pour le rôle.
  • « Export/Import » module. You can export user role to the local file and import it to any WordPress site or other sites of the multi-site WordPress network.
  • Roles and Users permissions management via Network Admin for multisite configuration. One click Synchronization to the whole network.
  • « Other roles access » module allows to define which other roles user with current role may see at WordPress: dropdown menus, e.g assign role to user editing user profile, etc.
  • Manage user access to editing posts/pages/custom post type using posts/pages, authors, taxonomies ID list.
  • Per plugin users access management for plugins activate/deactivate operations.
  • Per form users access management for Gravity Forms plugin.
  • Shortcode to show enclosed content to the users with selected roles only.
  • Les restrictions de vue d’article et de page pour les rôles sélectionnés.
  • Admin back-end pages permissions viewer

La version Pro est sans publicité. Un support premium est inclus.

Documentation supplémentaire

Vous pouvez trouver plus d’informations à propos de « User Role Editor » sur cette page

Je suis prêt à répondre à vos questions sur l’utilisation de l’extension. Utilisez les commentaires de la page de l’extension pour cela.

Captures d’écrans

Installation

Procédure d’installation :

  1. Désactivez l’extension si vous avez la version précédente installée.
  2. Extract « user-role-editor.zip » archive content to the « /wp-content/plugins/user-role-editor » directory.
  3. Activate « User Role Editor » plugin via ‘Plugins’ menu in WordPress admin menu.
  4. Allez dans l’élément de menu « Utilisateurs » de « User Role Editor » et modifiez les permissions de vos rôles standard WordPress en fonction de vos besoins.

FAQ

  • Est-ce que ça fonctionne avec WordPress en environnement multi-sites ?
    Oui, cela fonctionne avec WordPress multi-sites. Par défaut l’extension fonctionne pour tout blog de votre réseau multi-site de la même manière que pour un blog installé en local.
    Pour mettre à jour globalement un rôle spécifique pour le réseau, vous devez cocher la case « Appliquer à tous les sites ». Vous devez avoir les privilèges super admin pour pouvoir utiliser User Role Editor en environnement WordPress multi-sites.

Pour lire la section FAQ complète, visitez cette page sur shinephp.com.

Avis

24 juillet 2026
If you need to manage custom roles or tweak specific capabilities for your clients, look no further. User Role Editor is lightweight, perfectly integrated into the WordPress core logic, and extremely reliable. It allows us to restrict client access safely without breaking site functionality. A 5-star, must-have plugin for any serious development environment.
25 juin 2025
This plugin is working well. Thank you for the developer who put lot of time into it. Very nice, lightest and most simple.
22 avril 2025
I'm a DIY self learner, and had a great experience with URE. It has vast capabilities and is organized to make it easy to navigate and apply so many customizations. Very intuitive. On the one occasion I needed guidance, the tech support was quick, personal and a success. Highly recommend.
16 avril 2025
I hate giving bad reviews as I know how much work goes into these plugins, often by one person. But we have wasted so much time and lost orders because of a known bug. I can see that others have reported this bug from at least 4 months ago. So I want to warn others. The whole point of us using this plugin was to create a custom role and to assign specific capabilities to that role. For a short while it worked so we launched the site. And then it stopped working and caused chaos. We have spent FOREVER trying to figure this out. We will be moving to a different plugin asap.
27 mars 2025
Didn't break my site, it just doesn't work. On multisite, trying to give user permissions to install plugins–as it indicated in settings that it could do that. Appears to uninstall cleanly, at least.
Lire les 288 avis

Contributeurs/contributrices & développeurs/développeuses

« User Role Editor » est un logiciel libre. Les personnes suivantes ont contribué à cette extension.

Contributeurs

“User Role Editor” a été traduit dans 28 locales. Remerciez l’équipe de traduction pour ses contributions.

Traduisez « User Role Editor » dans votre langue.

Le développement vous intéresse ?

Parcourir le code, consulter le SVN dépôt, ou s’inscrire au journal de développement par RSS.

Journal des modifications

[4.66.1] 25.08.2026

  • Fix: URE_Assign_Role::$lib property was changed to protected.
  • Fix: URE_Uninstall::delete_options() private function changed to protected.
  • Fix: URE_Uninstall::init_options_list() referenced ‘ure_task_queue’, which never matched URE_Task_Queue::OPTION_NAME (‘ure_tasks_queue’), so that option was never deleted on uninstall.
  • Fix: URE_Core::define_files() – class URE_Uninstall was not added correctly, null was written instead of class name.
  • Fix: activating Pro while free was already active caused a fatal « Cannot redeclare ure_log_error() » error; the function declaration is now guarded with function_exists().
  • Fix: activating this plugin while the paired Pro plugin was already active silently left both active instead of deactivating the paired one, because the register_activation_hook() call never ran in that request; it’s now registered as a standalone function directly in the main plugin file, ahead of the class_exists(‘URE_Loader’) guard that was skipping it.

[4.66] 19.08.2026

  • Update: Marked as compatible with WordPress 7.1
  • Required PHP version increased up to 7.4
  • Required WordPress version increased up to 4.6
  • Update: Plugin loading code is enhanced.
  • Update: Plugin does not use self-defined PHP global constants. Needed data moved inside classes.
  • Update: URE_Admin_Notice class output was escaped with esc_attr(), wp_kses_post() functions.
  • Security Fix: SQL queries in URE_Editor::direct_network_roles_update() and leave_roles_for_blog() are passed to $wpdb->prepare() with real %s placeholders.
  • Security Fix: URE_Editor::get_caps_columns_quant() now requires a valid nonce before writing a display-preference transient from $_POST, closing a minor CSRF gap.
  • Fix: URE_Protect_Admin used a bitwise « & » instead of a logical « && » when checking a capabilities array, which could throw a PHP 8 TypeError; fixed to use « && », and the related IN() SQL clause is now hardened with array_map(‘absint’, …).
  • Update: nonce actions used on the Settings/Tools pages are now scoped per form (ure_settings_update, ure_addons_settings_update, ure_default_roles_update, ure_settings_ms_update, ure_settings_tools_exec) instead of one shared string.
  • Update: additional output escaping was added across URE_View, URE_Role_View and URE_Role_Additional_Options (role/capability slugs, wp_json_encode() instead of json_encode(), esc_url() on form actions), plus a defense-in-depth capability check in URE_Role_Additional_Options::save().
  • Update: rel= »noopener noreferrer » was added to external links opened with target= »_new ».
  • Update: hardcoded text strings in the role editor toolbar are now translatable.
  • Fix: URE_Assign_Role used the %i SQL placeholder, which needs WordPress 6.2+, below the plugin’s declared minimum; replaced with direct interpolation of internal table names.
  • Fix: URE_Editor::reset_user_roles() had an unescaped wp_die() message; further output escaping (esc_url(), esc_html(), absint()) was added across URE_Base_Lib, URE_Editor, URE_User_Other_Roles and URE_User_View.
  • Fix: several request-var/database-result comparisons that could be bypassed by PHP type juggling are now strict, including URE_Grant_Roles::is_try_remove_admin_from_himself()’s « can’t remove your own admin role » check.
  • Fix: URE_Base_Lib::set() now correctly rejects unknown properties instead of silently creating them; URE_View declares its $advert property explicitly.
  • Update: $_SERVER[‘REQUEST_URI’] is now validated and unslashed before sanitizing in URE_Lib::is_right_admin_path() and URE_User_Other_Roles::is_user_profile_extention_allowed().
  • Update: posted role IDs are now sanitized (sanitize_key(), wp_unslash()) in URE_Editor, and its ‘object’/role-selection request parameters are constrained to known values.
  • Update: URE_Base_Lib::get_blog_ids() now uses get_sites() instead of a raw database query.
  • Update: URE_Capability::revoke_caps() now uses get_users() instead of a raw database query.
  • Update: URE_Protect_Admin::has_administrator_role() now uses user_can() instead of a raw database query.

[4.65] 21.05.2026

  • Update: Marked as compatible with WordPress 7.0
  • Update: Pages markup are modified to correspond WordPress 7.0 CSS changes.
  • Update: « defined(‘ABSPATH’) » guard was added to all PHP files to exclude PHP files direct execution.
  • Update: sanitize_text_field(), sanitize_key(), sanitize_url() functions are used to secure user input before processing.
  • Update: _nonce field checking was added before data update in addition to test made already on the higher level.

File changelog.txt contains the full list of changes.