Visualizzare il Ruolo Assegnato all'Utente Corrente

28 set 2015, 13:06:59
Visualizzazioni: 26.2K
Voti: 2

Esiste una sezione nel pannello di amministrazione della mia installazione WordPress che mostra semplicemente quale ruolo ha l'utente attualmente connesso?

Per esempio, so di avere i permessi di amministratore perché lo so, ma non riesco a vederne la conferma da nessuna parte.

Inoltre, se mi imposto come Editor, come posso verificare rapidamente che sono effettivamente connesso come Editor? (a parte semplicemente "saperlo").

Sarebbe davvero utile saperlo nel caso in cui si stiano facendo 10 cose contemporaneamente e si perda il filo.

Potrebbe essere utile visualizzarlo dopo il "Come stai..." in alto a destra.

MODIFICA

Prima che qualcuno lo menzioni, sì, posso vedere che c'è la colonna Ruolo nel pannello Utenti (essendo amministratore), ma qualcuno che è solo un Collaboratore non potrebbe vederla, giusto?

1
Commenti

È davvero strano che WordPress non mostri il ruolo dell'utente all'utente stesso

Marco Panichi Marco Panichi
2 ott 2018 09:48:24
Tutte le risposte alla domanda 3
0

Come hai suggerito, ecco come puoi visualizzare i ruoli accanto al nome utente nella barra di amministrazione:

function wpse_203917_admin_bar_menu( $wp_admin_bar ) {
    if ( ! $node = $wp_admin_bar->get_node( 'my-account' ) )
        return;

    $roles = wp_get_current_user()->roles;

    $node->title .= sprintf( ' (%s)', implode( ', ', $roles ) );

    $wp_admin_bar->add_node( $node );
}

add_action( 'admin_bar_menu', 'wpse_203917_admin_bar_menu' );
28 set 2015 13:17:20
4

Verifichi il ruolo dell'utente corrente e aggiungi il valore alla barra di amministrazione, come l'elemento del profilo.

Per ottenere il ruolo dell'utente corrente utilizza la piccola funzione qui sotto:

/**
 * Restituisce il ruolo tradotto dell'utente corrente. 
 * Nessun ruolo, restituisce false.
 *
 * @return string Il nome tradotto del ruolo corrente.
 **/
function fb_get_current_user_role_fixed() {
    global $wp_roles;

    $current_user = wp_get_current_user();
    $roles = $current_user->roles;
    $role = array_shift( $roles );

    return isset( $wp_roles->role_names[ $role ] ) ? translate_user_role( $wp_roles->role_names[ $role ] ) : FALSE;
}

Inoltre un esempio per aggiungere il valore dalla funzione alla barra di amministrazione, nel mio esempio una nuova voce all'elemento account nella Barra di Amministrazione.

add_action( 'admin_bar_menu', 'fb_change_admin_bar_item' );
/**
 * Aggiunge un elemento alla barra di amministrazione, all'elemento my-account.
 *
 * @param Array $wp_admin_bar
 */
function fb_change_admin_bar_item( $wp_admin_bar ) {

    $args = array(
        'id'     => 'user_role',
        'title'  => __( 'Ruolo:' ) . ' ' .     fb_get_current_user_role_fixed(),
        'parent' => 'my-account' 
    );
    $wp_admin_bar->add_node( $args );
}

Vedi il risultato nello screenshot, molto più semplice per capire l'obiettivo dell'esempio. Anteprima risultato esempio ruolo nella barra di amministrazione

Come alternativa il secondo esempio, che aggiunge il nome del ruolo al nome utente, sul titolo predefinito nella barra di amministrazione.

add_action( 'admin_bar_menu', 'fb_change_admin_bar_item' );
function fb_change_admin_bar_item( $wp_admin_bar ) {

    $node = $wp_admin_bar->get_node( 'my-account' );

    if ( ! $node ) {
        return $wp_admin_bar;
    }

    $node->title .= ' ' . fb_get_current_user_role_fixed();

    $wp_admin_bar->add_node( $node );
}

Anche qui uno screenshot del risultato.

Anteprima risultato alternativa esempio ruolo nella barra di amministrazione

28 set 2015 13:34:10
Commenti

Ok. Quindi non c'è nulla di predefinito di cui sei a conoscenza?

mikelovelyuk mikelovelyuk
28 set 2015 13:35:37

Esatto, il core non mostra il ruolo a ciascun utente.

bueltge bueltge
28 set 2015 13:41:31

In quale file/i devo inserire tutto questo?

mikelovelyuk mikelovelyuk
29 set 2015 17:01:12

Un Plugin personalizzato è la soluzione migliore.

bueltge bueltge
29 set 2015 22:07:47
0

Utilizzo semplicemente:

global $current_user; echo array_shift($current_user->roles);

Per visualizzare il ruolo dell'utente corrente.

26 nov 2018 11:58:29