Su come creare un ruolo utente personalizzato in WordPress possiamo reperire online varie metodologie, tra cui l’utilizzo di appositi e svariati tipi di plugin.

In questo articolo vi propongo di evitare l’utilizzo di plugin in quanto ritengo che meno se ne usino meglio è per il vostro sito.

Metodo manuale per creare un ruolo utente





Modifichiamo e aggiungiamo al file functions.php del tema child del nostro sito, il seguente codice:

$result = add_role('cliente', 'Cliente', array(
 'read' => true,
 'edit_posts' => true,
 'delete_posts' => true,
 ));

In questo caso ho aggiunto il nuovo ruolo “Cliente”, al quale ho dato la possibilità attraverso il valore true di leggere (read), modificare (edit_posts) e cancellare (delete_posts)  post (sostituire true con false, se invece volete negare).

Queste sono le opzioni basilari, ma ci sono molte altre opzioni disponibili:

Per i post:

// Posts
'edit_posts' => true, //Access to Posts, Add New, Comments and moderating comments.
'create_posts' => true, // Allows user to create new posts
'delete_posts' => true, // Can delete posts.
'publish_posts' => true, // Can publish posts. Otherwise they stay in draft mode.
'delete_published_posts' => true, // Can delete published posts.
'edit_published_posts' => true, // Can edit posts.
'edit_others_posts' => true, // Can edit other users posts.
'delete_others_posts' => true, // Can delete other users posts.

Per le pagine:

// Pages
'edit_pages' => true, // Access to Pages and Add New (page).
'publish_pages' => true, // Can publish pages.
'edit_other_pages' => true, // Can edit other users pages.
'edit_published_ pages' => true, // Can edit published pages.
'delete_pages' => true, // Can delete pages.
'delete_others_pages' => true, // Can delete other users pages.
'delete_published_pages' => true, // Can delete published pages.

Per rimuovere un ruolo utente usiamo:

/* remove the unnecessary roles
remove_role('slug del ruolo da rimuovere');