Aggiungere un ruolo su wordpress può essere molto utile in fase di realizzazione di un sito per gestire alcune azioni che solamente determinati utenti possono effettuare. Mi è capitato spesso, infatti, di realizzare siti ed ecommerce dove solamente alcuni utenti potevano visualizzare il contenuto del sito od effettuare talune azioni. Proprio in questi casi è molto utile creare un ruolo personalizzato per facilitare e velocizzare lo sviluppo del sito web.
Ma sono tante le possibilità di utilizzo di un ruolo custom, tra cui, ad esempio, avere un ruolo che possa gestire articoli, pagine, media, e prodotti in un unico utente, cosi facendo, potremmo fornire al cliente finale un account in cui utilizzare totalmente il sito, ma senza correre il rischio che rompa il sito avventurandosi in campo più complessi come il personalizza e l’editor del sito.
WordPress e la gestione dei ruoli
WordPress dispone al suo interno di ruoli predefiniti da dare ai singoli utenti. Essendo nata come piattaforma di blogging la totalità dei ruoli esistenti sono inerenti, per lo appunto, ad attività di redazione, controllo e stesura di articoli. Alcuni plugin, come ad esempio Yoast o Woocommerce, aggiungono dei ruoli che permettono al singolo utente scelto per quel ruolo di gestire solamente alcuni aspetti del sito (il seo manager di yoast, ad esempio, può modificare i dettagli seo di una pagina o di un sito).
Ma come possiamo aggiungere un ruolo su WordPress totalmente personalizzato in base alle nostre esigenze? In questa breve guida vi mostrerò come farlo con l’aiuto di plugin, oppure del puro codice!
Aggiungere un ruolo in WordPress tramite plugin
Esistono diversi plugin, gratuito e a pagamento, che ci consentono di aggiungere ruoli custom o modificare le capacità di quelli esistenti. Adesso vedremo quello che ho maggiormente utilizzato e che consiglio.
Aggiungere un ruolo su wordpress: User Role Editor
User role editor è un plugin gratuito che permette la personalizzazione delle capacità di un singolo ruolo (ma anche di un singolo utente) e la creazione di un nuovo ruolo su wordpress.
User Role Editor è facilmente utilizzabile e molto intuitivo, con la sua interfaccia a check permette di selezionare i ruoli da modificare o creare e di spuntare le capacità da dare al singolo ruolo. Molto utile la modalità “Show capabilities in human readable form” che permette di tradurre e rendere maggiormente comprensibili i singoli “poteri” degli utenti.
Per creare un nuovo ruolo con il plugin basterà recarci nella pagina del plugin, cliccare su “Add Role”, si aprirà un Popup che vi chiederà l’ID del nuovo ruolo, il nome mostrato in Front End del ruolo, ed, eventualmente, se volete effettuate una copia delle capacità di un ruolo già esistente.
Verrà successivamente aperta una nuova pagina, che vi mostrerà la lista delle capacità da dare al nuovo ruolo creato. Se avete copiato un ruolo già esistente vedrete spuntate le capacità del ruolo che avrete scelto (se avete copiato il ruolo editore, il nuovo ruolo, avrà le capacità di un editore) oppure inserire da 0 la lista delle capacità.
Fatto questo il vostro custom role sarà completato, non vi resterà che utilizzarlo nel migliore dei modi!
Aggiungere un ruolo in wordpress con members
Members è un altro notissimo plugin che permette di gestire ruoli ed utenti facilmente. Viene molto spesso utilizzato per la realizzazione di un area riservata per gli utenti appartenenti ad un determinato ruolo.
Tra le potenzialità del plugin troviamo:
- Modifica di ruoli: Permette di creare, gestire e modificare i ruoli predefiniti di wordpress.
- Ruoli utenti multipli: Dare più ruoli ad un singolo utente.
- Impedire azioni: Impedire a specifici ruoli di non effettuare alcune azioni specifiche.
- Clonazione di ruoli: Clonare interamente ruoli già esistenti
- Permesso contenuto: Scegliere quale ruolo può visualizzare uno specifico contenuto.
- Sito privato: Possibilità di rendere la totalità del sito privata e accessibile solo ad alcuni ruoli/utenti.
Aggiungere un ruolo su WordPress via codice
Per aggiungere un ruolo personalizzato via codice vi basterà inserire, all’interno del vostro functions.php il codice riportato sotto. Consiglio di aggiungere il codice all’interno del vostro Child Theme.
/* Creiamo Ruolo per Rivenditore */
add_role('rivenditore', // Nome del ruolo.
__( 'Rivenditore' ), // Il nome del ruolo che viene mostrato.
// Un array un cui stabiliamo le capacità che avrà il ruolo. Nel mio caso, le persone che hanno il ruolo rivenditore potranno leggere i post e leggere i post privati.
array(
'read' => true,
'read_private_posts' => true,
)
);
WordPress gestisce la creazione di ruoli con la funzione add_role() che contiene al suo interno diversi elementi. Questa è la funzione di base che troviamo nel codex wordpress.
add_role( string $role, string $display_name, bool[] $capabilities = array() );
modificate la funzione espressa sopra (o personalizzate quella di base di wordpress) in base alle vostre esigenze.
Spiegazione del codice
come possiamo notare la funzione richiede una stringa con il nome del ruolo (l’id da usare all’interno di wp), una stringa contenente il nome da mostrare nel sito web ed un valore booleano (ovvero true o false) per le capacità.
Troviamo infatti un Array di possibilità, che equivalgono alle capacità del ruolo, quindi tutte le cose che potrà fare la persona con il ruolo rivenditore. Nel mio caso, dato che è un ruolo utile in fase di sviluppo, il ruolo ha come capacità la possibilità di leggere i post e leggere i post nascosti, ma, come potete vedere qui, la lista delle capacità di WordPress è ampissima!
Nel mio caso, stiamo aggiungendo un codice che aggiunge un ruolo rivenditore, che abbia come nome del ruolo (visibile in back end) Rivenditore e che abbia diverse capacità.
Le possibilità non finiscono qui però, il core di wordpress ci mette a disposizione altre funzioni per gestire al meglio tutte le informazioni dei ruoli:
- add_role(): aggiunge un ruolo totalmente custom.
- remove_role(): ci aiuta a rimuovere un ruolo precedentemente creato, o uno di quelli predefiniti da wordpress.
- add_cap(): per aggiungere le singole capacità ad un ruolo.
- remove_cap(): per rimuovere le singole capacità.
- get_role (): Per prendere informazioni su un ruolo.
Con queste funzioni sarà facilissimo gestire alla perfezione i singoli ruoli di wordpress, modificandoli, aggiungendoli o rimuovendoli.
Creare un ruolo su wordpress: Conclusioni
Abbiamo visto come sia facile, sia tramite plugin che tramite codice, aggiungere un ruolo su wordpress totalmente personalizzato in base alle nostre esigenze. Il mio consiglio è quello di aggiungere i ruoli (o il ruolo) utilizzando il codice fornito e non con l’aggiunta di plugin che potrebbero (se aggiunti in maniera ossessiva) rallentare il vostro sito web.
Rispondi