Cómo crear un rol clonado en WordPress
19 oct 2011, 08:33:43
Vistas: 23.2K
Votos: 28
Cómo crear un nuevo rol con las mismas capacidades de un rol existente. Por ejemplo: Me gustaría crear un nuevo rol con las mismas capacidades de un administrador o editor, etc.
```php // Obtener capacidades del rol existente $role = get_role('administrator'); // o 'editor', 'author', etc. $capabilities = $role->capabilities; // Crear nuevo rol con las mismas capacidades add_role('nuevo_rol', 'Nombre del Nuevo Rol', $capabilities); ``` ```php // Ejemplo completo de función function crear_rol_clonado() { // Obtener el rol que queremos clonar $rol_origen = get_role('administrator'); // Verificar si el rol existe if(!empty($rol_origen)) { // Crear nuevo rol con las mismas capacidades add_role( 'nuevo_rol_admin', // Slug del rol 'Nuevo Rol Admin', // Nombre visible $rol_origen->capabilities // Capacidades ); } } add_action('init', 'crear_rol_clonado'); ```
Aadi
507
Comentarios
Todas las respuestas a la pregunta
5
3
Prueba esto... Debería funcionar.
<?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');
//Agregando un 'new_role' con todas las capacidades de admin
$wp_roles->add_role('new_role', 'Mi Rol Personalizado', $adm->capabilities);
}
?>
Compruébalo.

Rutwick Gangurde
8.6K
19 oct 2011 08:56:14
Comentarios
¡Cuidado! Parece que esto clona el rol antes de que los plugins añadan roles y capacidades. Probaré con admin_init para ver si funciona mejor.

21 ene 2014 19:21:41
0
Siempre puedes utilizar el plugin User Role Editor:
- Instala el plugin
- Ve a Usuarios > User Role Editor
- Haz clic en "Add Role" a la derecha
- Selecciona el rol que deseas duplicar del menú desplegable "Make copy of" en el cuadro de diálogo
- Haz clic en "Add Role" en el cuadro de diálogo

McOwen
142
25 may 2017 17:35:07
0
el sistema que funcionó en mi caso es este:
<?php
add_action('init', 'cloneRole');
function cloneRole() {
$adm = get_role('administrator');
$adm_cap= array_keys( $adm->capabilities ); //obtener capacidades del administrador
add_role('new_role', 'Mi Rol Personalizado'); //crear nuevo rol
$new_role = get_role('new_role');
foreach ( $adm_cap as $cap ) {
$new_role->add_cap( $cap ); //clonar capacidades del administrador al nuevo rol
}
}
?>

Fosco Ventura
1
16 jul 2018 13:50:49
0
A partir de 2024, clonar un rol se logra mejor con el wp
comando CLI de roles, por ejemplo:
wp role create 'nuevo-rol' 'Nuevo-rol' --clone 'rol-existente'

sphakka
101
21 may 2024 15:28:31
Preguntas relacionadas
2
respuestas
2
respuestas
3
respuestas