I ruoli (roles) di WordPress di default sono Sottoscrittore, Collaboratore, Autore, Editore, Amministratore, questi ruoli ci aiutano a creare utenti con diritti amministrativi differenti, ma cosa succede se abbiamo la necessità di creare un ruolo personalizzato ?
Possiamo infatti scrivere una piccola funzione o un plugin che ci permette di aggiungere dei ruoli custom (custom role) con le relativie autorizzazioni (capabilities), vediamo subito come fare.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
$result = add_role( 'dipendente', __( 'Dipendente' ), array( 'read' => true, 'edit_posts' => true, 'delete_posts' => false, 'create_users' => true, 'install_themes' => true, ) ); if ( null !== $result ) { echo 'Aggiunto nuovo ruolo!'; } else { echo 'Ops... Esiste già un ruolo con lo stesso nome'; } |
Se volessimo creare un plugin che alla sua attivazione crei la regola, scriveremmo
1 2 3 4 |
function add_roles_on_plugin_activation() { add_role( 'dipendente', 'Dipendente', array( 'read' => true, 'level_0' => true ) ); } register_activation_hook( __FILE__, 'add_roles_on_plugin_activation' ); |
Lista di tutte le capabilities disponibili per WordPress
Capability | Super Admin | Amm.re | Editore | Autore | Coll.re | Sott.re |
---|---|---|---|---|---|---|
create_sites | Sì | |||||
delete_sites | Sì | |||||
manage_network | Sì | |||||
manage_sites | Sì | |||||
manage_network_users | Sì | |||||
manage_network_plugins | Sì | |||||
manage_network_themes | Sì | |||||
manage_network_options | Sì | |||||
upload_plugins | Sì | |||||
upload_themes | Sì | |||||
Capability | Super Admin | Amm.re | Editore | Autore | Coll.re | Sott.re |
activate_plugins | Sì | Sì | ||||
create_users | Sì | Sì | ||||
delete_plugins | Sì | Sì | ||||
delete_themes | Sì | Sì | ||||
delete_users | Sì | Sì | ||||
edit_files | Sì | Sì | ||||
edit_plugins | Sì | Sì | ||||
edit_theme_options | Sì | Sì | ||||
edit_themes | Sì | Sì | ||||
edit_users | Sì | Sì | ||||
export | Sì | Sì | ||||
import | Sì | Sì | ||||
Capability | Super Admin | Amm.re | Editore | Autore | Coll.re | Sott.re |
install_plugins | Sì | Sì | ||||
install_themes | Sì | Sì | ||||
list_users | Sì | Sì | ||||
manage_options | Sì | Sì | ||||
promote_users | Sì | Sì | ||||
remove_users | Sì | Sì | ||||
switch_themes | Sì | Sì | ||||
update_core | Sì | Sì | ||||
update_plugins | Sì | Sì | ||||
update_themes | Sì | Sì | ||||
edit_dashboard | Sì | Sì | ||||
customize | Sì | Sì | ||||
delete_site | Sì | Sì | ||||
Capability | Super Admin | Amm.re | Editore | Autore | Coll.re | Sott.re |
moderate_comments | Sì | Sì | Sì | |||
manage_categories | Sì | Sì | Sì | |||
manage_links | Sì | Sì | Sì | |||
edit_others_posts | Sì | Sì | Sì | |||
edit_pages | Sì | Sì | Sì | |||
edit_others_pages | Sì | Sì | Sì | |||
edit_published_pages | Sì | Sì | Sì | |||
publish_pages | Sì | Sì | Sì | |||
delete_pages | Sì | Sì | Sì | |||
delete_others_pages | Sì | Sì | Sì | |||
delete_published_pages | Sì | Sì | Sì | |||
delete_others_posts | Sì | Sì | Sì | |||
delete_private_posts | Sì | Sì | Sì | |||
edit_private_posts | Sì | Sì | Sì | |||
read_private_posts | Sì | Sì | Sì | |||
delete_private_pages | Sì | Sì | Sì | |||
edit_private_pages | Sì | Sì | Sì | |||
read_private_pages | Sì | Sì | Sì | |||
unfiltered_html | Sì | Sì | Sì | |||
Capability | Super Admin | Amm.re | Editore | Autore | Coll.re | Sott.re |
edit_published_posts | Sì | Sì | Sì | Sì | ||
upload_files | Sì | Sì | Sì | Sì | ||
publish_posts | Sì | Sì | Sì | Sì | ||
delete_published_posts | Sì | Sì | Sì | Sì | ||
edit_posts | Sì | Sì | Sì | Sì | Sì | |
delete_posts | Sì | Sì | Sì | Sì | Sì | |
Capability | Super Admin | Amm.re | Editore | Autore | Coll.re | Sott.re |
read | Sì | Sì | Sì | Sì | Sì | Sì |
Tabella liberamente tradotta da https://codex.wordpress.org/Roles_and_Capabilities
Programmatore WordPress Esperto WooCommerce
Sono l’autore di questo blog con tanti trucchi e guide su WordPress e WooCommerce.