https://s3-us-west-2.amazonaws.com/secure.notion-static.com/f0c0b016-6da2-4e11-94ab-cf5878a1c788/Untitled.png

para crear un usuario nuevo tenemos las siguientes opciones

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/6fa6aa90-766e-465a-a28a-a7d5083c3920/Untitled.png

el perfil por defecto de los usuarios nuevos es el de suscriptor.

administrador: administra todas las opciones y contenido del sitio.

editor: maneja el contenido propio y del resto, pero no tiene acceso a la parte de diseño o ajustes.

autor: crear y administrar solo su contenido.

colaborador: puede crear contenido pero no lo puede publicar.

suscriptor: por defecto solo puede hacer comentarios.

Crear un rol de usuario

en el archivo functions.php asignarla al hook init.

function add_administrador_tema_role() { //nombre de nuestra función, puede ser el nombre que quieras
    add_role(
        'administrador_tema', //Nombre de role.
        'Administrador Tema', //Nombre que se visualará en la creación o página de opciones de usuarios.
       array(    
            'read' => true, //Permite el acceso al dashboard del adminitrador.
            'switch_themes' => true, //Permite el cambio de temas.
            'edit_themes'   => true, //Permite editar archivos desde el administrado de archivos del tema.
            'edit_theme_options' => true, //Permite modificar Widgets,Menús, Personalizar.
            'install_themes'    => true,  //Permite instalar temas nuevos.
            'update_themes' => true, //Permite actualizar temas instalados.
            'delete_themes' => true, //Permite eliminar temas.

            )   //Array con las capabilities
    );
}

//add_action(Hook, Nombre de la función)
add_action('init', 'add_administrador_tema_role');

Eliminar un rol de usuario

eliminar el hook de creacion de rol y agregar el siguiente código.

function remove_role_administrado_temas() { //Nombre de la función
    remove_role( 'administrador_tema' ); 
}
 
//add_action(Hook, Nombre de la función)
add_action( 'init', 'remove_role_administrado_temas' );

Modificar capabilities en roles

function add_cap_subscriber(){ //Nombre de la función
    $role = get_role( 'subscriber' ); //Instaciamos el role en la variable $role
    $role->add_cap( 'edit_posts'); //Agregamos la cabability usando el método add_cap().
}

//add_action(Hook, Nombre de la función)
add_action( 'init', 'add_cap_subscriber');
function remove_cap_editor(){ //Nombre de la función
    $role = get_role( 'editor' ); //Instaciamos el role en la variable $role
    $role->remove_cap('edit_pages'); //Removemos la cabability usando el método remove_cap().
}

//add_action(Hook, Nombre de la función)
add_action( 'init', 'remove_cap_editor');