How to create a clone role in wordpress

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..

Related posts

Leave a Reply

4 comments

  1. Try this… This should work.

    <?php
    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.

  2. 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
  3. the system that worked in my case is this:

    <?php
    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
      }
    }
    ?>