How to create new role with same capabilities of existing role. Eg: I would like to create a new role with same capabilities of administrator or editor and so on..


Try this... This should work.

add_action('init', 'cloneRole');

function cloneRole()
    global $wp_roles;
    if ( ! isset( $wp_roles ) )
        $wp_roles = new WP_Roles();

    $adm = $wp_roles->get_role('administrator');
    //Adding a 'new_role' with all admin caps
    $wp_roles->add_role('new_role', 'My Custom Role', $adm->capabilities);

Check it.

| improve this answer | |
  • Watchout!! this seems to clone the role before the plugins add roles and capabilities. I'll try admin_init to see if this is better. – spankmaster79 Jan 21 '14 at 17:21
  • @spankmaster79 Yes please, that will be great! – Rutwick Gangurde Jan 22 '14 at 6:00
  • @RutwickGangurde didn't work any better. Role is still ignored by the plugin – spankmaster79 Jan 24 '14 at 15:42

You could always use the User Role Editor plugin;

  1. Install the plugin
  2. Go to Users > User Role Editor
  3. Click "Add Role" to the right
  4. Choose the role you wish to duplicate from the "Make copy of" dropdown in the dialogue box
  5. Click "Add Role" in the dialogue box
| improve this answer | |

suppose you want to clone the editor.

$edr = $wp_roles->get_role('Editor');
add_role('clonerole', 'clone roles', $edr->capabilities);
| improve this answer | |

the system that worked in my case is this:

add_action('init', 'cloneRole');

function cloneRole() {
 $adm = get_role('administrator');
 $adm_cap= array_keys( $adm->capabilities ); //get administator capabilities
 add_role('new_role', 'My Custom Role'); //create new role
 $new_role = get_role('new_role');
  foreach ( $adm_cap as $cap ) {
   $new_role->add_cap( $cap ); //clone administrator capabilities to new role
| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.