Cómo crear un rol de clonación en WordPress

Respuestas:

33

Prueba esto ... 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');
    //Adding a 'new_role' with all admin caps
    $wp_roles->add_role('new_role', 'My Custom Role', $adm->capabilities);
}
?>

Revisalo.

Rutwick Gangurde
fuente
¡¡Cuidado!! Esto parece clonar el rol antes de que los complementos agreguen roles y capacidades. Intentaré admin_init para ver si esto es mejor.
spankmaster79
@ spankmaster79 Sí, por favor, ¡será genial!
Rutwick Gangurde
@RutwickGangurde no funcionó mejor. El plugin sigue ignorando el
papel
4

Siempre puede usar el complemento Editor de roles de usuario ;

  1. Instala el complemento
  2. Vaya a Usuarios> Editor de roles de usuario
  3. Haga clic en "Agregar rol" a la derecha
  4. Elija la función que desea duplicar en el menú desplegable "Hacer copia de" en el cuadro de diálogo
  5. Haga clic en "Agregar rol" en el cuadro de diálogo
McOwen
fuente
0

supongamos que desea clonar el editor.

$edr = $wp_roles->get_role('Editor');
add_role('clonerole', 'clone roles', $edr->capabilities);
mohammed kaleemulla
fuente
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 ); //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
  }
}
?>
Fosco Ventura
fuente