WordPress intègre par défaut six rôles Administrateur, éditeur, Contributeur, auteur, abonné et un sixième rôle en multisite : super Admin.
Nous allons voir comment créer un nouveau rôle pour vos abonnés et comment afficher le contenu en fonction du nouveau rôle attribué.
À quoi peu nous servir de créer un nouveau rôle ?
Je pourrais vous donner pas mal de raison pour créer un nouveau rôle pour les abonnés ici dans le cadre de se tutoriel je voudrais conserver le rôle abonné par défaut et je voudrais créer un abonnement premium pour monétiser mon blog.
Pour créer ce nouveau rôle (abonnement premium) dans WordPress je vais ajouter le code suivant dans mon fichier function.php de mon thème :
// Ajuoter un rôle add_role('premium_user', 'Abonnement Premium', array( 'read' => true, // true : aurtorise la lecture des page et article 'edit_posts' => false, // false : Interdit d'ajouter des articles ou des pages 'delete_posts' => false, // false : Interdit de supprimer des articles ou des pages ));
Add_role : premium_user sera l’identifiant de mon nouveau rôle et Abonnement Premium sera le nom du rôle que je vais attribuer à mes futurs abonnés qui voudront cet abonnement.
IMPORTANT : Dans l’identifiant et le nom du nouveau rôle vous ne devez pas avoir d’accents ni de caractères spéciaux au risque d’avoir un message d’erreur qui peut-être résolu quant intervenant sur la base de données.
Read : true ici j’autorise la lecture
Edit_post : false je n’autorise pas la possibilité d’ajouter un article
Delete_post : false je n’autorise pas la possibilité supprimer un article
Vous pouvez voir sur le codex les différentes permissions que vous pouvez attribuer.
Une fois que créer le nouveau rôle , il me faudrait maintenant définir quel contenu qui va être affiché pour cet abonnement pour ça je vais créer une page template que je vais appelé Premium pour mon exemple :
<?php /** * Template Name: Premium * * Ma page pour l'abonnement premium */ get_header(); ?> <div id="container"> <div id="content" role="main"> </div><!-- #content --> </div><!-- #container --> <?php get_sidebar(); ?> <?php get_footer(); ?>
Puis ont va ajouter la fonction current_user
avec l’identifiant du nouveau rôle premium_user et celui de l’administrateur administrator qui va permettre d’autoriser seulement les utilisateurs qui ont l’abonnement premium et l’administrateur à pouvoir accéder au contenu de cette page :
<?php global $current_user; if ($current_user->roles[0] == 'premium_user' || $current_user->roles[0] == 'administrator' ) { echo 'je suis en Abonnement Premium'; // le contenu a affiché pour les membres premium } else { echo 'je suis pas en Abonnement Premium'; }?>
Pour supprimer un rôle dans WordPress il vous suffit d’ajouter la ligne suivante dans votre fichier function.php de votre thème en indiquant son identifiant :
remove_role( 'author' );