Come creare un ruolo clone in WordPress

19 ott 2011, 08:33:43
Visualizzazioni: 23.2K
Voti: 28

Come creare un nuovo ruolo con le stesse capacità di un ruolo esistente. Ad esempio: Vorrei creare un nuovo ruolo con le stesse capacità di amministratore o editor e così via..

// Ottieni il ruolo esistente che vuoi clonare
$role = get_role('administrator'); // o 'editor', 'author', ecc.

// Ottieni le capacità del ruolo
$capabilities = $role->capabilities;

// Aggiungi un nuovo ruolo con le stesse capacità
add_role('nuovo_ruolo', 'Nome Visualizzato del Nuovo Ruolo', $capabilities);
2
Commenti

Cosa hai provato? Cosa ha funzionato? Cosa no? Hai provato il plugin Members? O il plugin Capability Manager? Fanno quello che ti serve?

soulseekah soulseekah
19 ott 2011 08:42:02

Puoi usare User Role Editor se vuoi fare tutto visivamente :)

User User
19 ott 2011 13:57:22
Tutte le risposte alla domanda 5
3
44

Prova questo... Dovrebbe funzionare.

<?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');
    //Aggiunge un 'new_role' con tutte le capacità dell'amministratore
    $wp_roles->add_role('new_role', 'Il Mio Ruolo Personalizzato', $adm->capabilities);
}
?>

Controlla.

19 ott 2011 08:56:14
Commenti

Attenzione!! Sembra che questo cloni il ruolo prima che i plugin aggiungano ruoli e capacità. Proverò con admin_init per vedere se funziona meglio.

spankmaster79 spankmaster79
21 gen 2014 19:21:41

@spankmaster79 Sì perfavore, sarebbe fantastico!

Rutwick Gangurde Rutwick Gangurde
22 gen 2014 08:00:22

@RutwickGangurde non ha funzionato meglio. Il ruolo viene ancora ignorato dal plugin

spankmaster79 spankmaster79
24 gen 2014 17:42:46
0

Puoi sempre utilizzare il plugin User Role Editor;

  1. Installa il plugin
  2. Vai a Utenti > User Role Editor
  3. Clicca "Aggiungi Ruolo" a destra
  4. Scegli il ruolo che desideri duplicare dal menu a discesa "Crea copia di" nella finestra di dialogo
  5. Clicca "Aggiungi Ruolo" nella finestra di dialogo
25 mag 2017 17:35:07
0

supponi di voler clonare l'editor.

$edr = $wp_roles->get_role('Editor');
add_role('clonerole', 'clone roles', $edr->capabilities);
28 apr 2017 09:21:12
0

Il sistema che ha funzionato nel mio caso è questo:

<?php
add_action('init', 'cloneRole');

function cloneRole() {
 $adm = get_role('administrator'); 
 $adm_cap= array_keys( $adm->capabilities ); //ottiene le capacità dell'amministratore
 add_role('new_role', 'Mio Ruolo Personalizzato'); //crea un nuovo ruolo
 $new_role = get_role('new_role');
  foreach ( $adm_cap as $cap ) {
   $new_role->add_cap( $cap ); //clona le capacità dell'amministratore nel nuovo ruolo
  }
}
?>
16 lug 2018 13:50:49
0

A partire dal 2024, clonare un ruolo è meglio realizzarlo con il wp comando CLI per i ruoli, ad esempio:

wp role create 'nuovo-ruolo' 'Nuovo-ruolo' --clone 'ruolo-esistente'
21 mag 2024 15:28:31