Avant d’attaquer ce long texte
Il existe une alternative plus légère que S2Member et parfaitement adaptée à ce besoin : Client Portal. Du coup, ce tutoriel n’intéressera que les personnes ayant besoin de plus de souplesse et qui n’ont pas besoin d’une création automatisée de page réservée. Mais vous pouvez aussi combiner les deux tant qu’à faire.
Avec S2Member
S2Member est une extension de gestion de contenu pour des membres payants ou pas. Son approche « clef en main pour les développeurs » le rend très flexible et je vais m’intéresser aujourd’hui à ses options de capacité personnalisée (custom capabilities).
Le principe est très simple : une capacité personnalisée permet de réserver un contenu spécifique aux membres qui possèdent cette capacité. Par exemple, si une page à la capacité gorille, seuls les membres qui ont la capacité gorille peuvent y avoir accès. Le but du jeu est d’utiliser cette fonction pour créer un contenu réservé à un membre unique, contenu qu’aucun autre membre ne pourra voir.
Préparation de S2Member
Après avoir installé l’extension, faites un tour dans les General Options du plugin et jetez un œil à celles-ci. Il y a deux pages que vous devez absolument créer et définir : Login Welcome Page et Membership Options Page. Si ces pages ne sont pas définies, l’extension ne pourra pas fonctionner.
Présentation de S2Member
S2Member crée à son installation de nouveaux rôles pour les membres (vous connaissez déjà les rôles administrateur, rédacteur, etc…). Pour la version gratuite de l’extension, ils sont au nombre de cinq: Level 0 pour un accès gratuit et Level 1 à 4 pour un accès payant. Vous pouvez définir le rôle des membres dans la page d’édition des membres de manière très classique. Je vous mets une capture d’écran mais en fait on s’en fiche car les capacités personnalisées s’utilisent indépendamment du rôle. C’était juste pour vous montrer parce qu’un peu plus bas, vous avez le champ Custom Capabilities qui nous intéresse.
Exemple : je crée un membre Robert avec comme identifiant robert, je lui octroie le rôle qui me convient (abonné ou autre, ça revient au même et ne dépend que de vous) et je lui donne une capacité personnalisée pomme.
Je crée sa page personnelle – que personne d’autre ne sera autorisé à consulter – et je vais lui donner comme titre La page de Robert. Dans la sidebar de la page d’édition de page (ça marche aussi avec les articles) apparaît la boîte S2Member avec un champ Custom Capabilies. Je colle dedans la capacité que j’ai définie pour Robert, à savoir pomme (cf. capture d’écran). Je publie la page et, à partir de ce moment, SEUL ROBERT (et en général les membres qui ont la capacité pomme) pourra accéder à la page en question. D’ailleurs, au passage, je vous conseille de vous rajouter en tant qu’administrateur toutes les capacités que vous créez parce que même les administrateurs sont concernés par la règle ! – cf. mise à jour du 14/04/2014 plus bas.
Et voilà ! Il vous reste à créer autant de pages que de membres avec pour chaque membre une capacité personnalisée (qui est un mot que vous devez définir) et attribuer à chaque page la capacité qui correspond. On aurait pu par exemple donner la capacité robert à Robert pour ne pas à avoir à réfléchir mais pomme a l’avantage de pouvoir servir à plusieurs personnes.
Parce qu’évidemment, vous pouvez attribuer plusieurs capacités à un membre (séparées par une virgule) ET plusieurs capacités à une page/un article ! Vous voyez la souplesse de la chose ?
Comment rediriger automatiquement un membre vers sa page
Plus fort encore, avec S2Member, vous pouvez faire en sorte que les membres soient automatiquement redirigés vers leur page quand ils se connectent. Là, il faut rentrer dans les options de S2Member…
Vous allez dans S2Member > General Options > Login Welcome Page. Vous remarquerez que vous pouvez choisir une page particulière pour TOUS les membres mais ça ne nous intéresse pas. Nous allons plutôt remplir le champ en dessous avec une URL dynamique qui sera sous la forme http://www.votresite.fr/%%current_user_nicename%%/, ce qui signifie que lorsqu’il va se connecter au site, Robert sera automatiquement redirigé vers la page/le billet avec le permalien http://www.votresite.fr/robert/ puisque son id de connexion est robert.
Remarques : j’ai choisi volontairement un identifiant tout en minuscule parce que je sais plus si WordPress va tout mettre automatiquement en minuscule lors de la gestion du permalien. Alors dans le doute…
Vous avez évidemment compris qu’il faut activer les permaliens dans votre installation WordPress – cf. http://www.responsive-mind.fr/parametrer-permaliens-wordpress/.
Mais la page de Robert a pour titre La page de Robert, ça ne va pas le faire ??? Pas de panique, retournons à l’édition de cette page et modifions le permalien pour qu’il corresponde. Et voilà !
Mise à jour du 14/04/2014
Avec sa dernière version, S2member propose une valeur de capacité personnalisée appelée all_ccaps. Le membre qui la possède a accès à tous les contenus protégés par capacité personnalisée – quelle qu’elle soit. Autant vous la rajouter en tant qu’administrateur.
Remarques complémentaires pour les curieux
On n’est même pas obligé de faire une page par membre
En effet, S2member propose des shortcodes pour gérer le contenu dans les pages/billets. En théorie, vous pouvez très bien mettre tout le contenu de chacun des membres sur UNE SEULE page ! Mazette !
Allez jeter un œil dans le menu S2Member > API Scripting > Custom Capabilities (Packages). On vous explique comment afficher un contenu suivant les capacités du membre. Dans notre cas, vous pouvez aller à la section s2member Shortcode Equivalents.
Observez bien le code suivant que vous pouvez utiliser dans votre page :
[_s2If current_user_can(access_s2member_ccap_robert)]
Mettre ici le contenu réservé à Robert
[/_s2If]
[_s2If current_user_can(access_s2member_ccap_martine)]
Mettre ici le contenu réservé à Martine
[/_s2If]
Je crois que ça se passe de commentaire… ccap signifie évidemment custom capabilities.
S2Member peut gérer votre contenu
S2Member peut gérer les fichiers à proposer à vos membres. Vous pouvez par exemple ranger les fichiers destinés à Robert dans un répertoire placé dans /wp-content/plugins/s2member-files/access-s2member-ccap-robert/ et ces fichiers ne pourront être accessible qu’à Robert même si les « liens » de téléchargement sont visibles par tout le monde. Si quelqu’un d’autre que Robert clique sur le lien du fichier proposé, rien ne se passera puisque les fichiers sont rangés dans un répertoire dont le contenu n’est accessible que par les membres ayant la capacité robert.
Vous pouvez utiliser le sous-plugin s2member Secure File Browser ou File Away – qui est compatible avec les dossiers gérés par S2Member – pour lister ces fichiers.
Vérifier le contenu
Pour vérifier le contenu de chaque membre, vous pouvez utiliser l’extension User Switching qui permet de se mettre à la place d’un membre en un clic.
Rediriger ailleurs un membre
Si vous voulez rediriger ailleurs que sur sa page un membre, vous pouvez utiliser une extension de redirection.
Apports de la version Pro de S2Member
Pour ce qui est des capacités personnalisées, la version Pro de S2Member n’apporte qu’une possibilité en plus – mais qui pourrait vous convaincre de passer à la caisse : elle permet un affichage dynamique des pages ajoutés aux menus natifs de WordPress. C’est à dire que les menus n’afficheront que les pages autorisées pour le membre connecté.
Voilà, je crois avoir fait le tour. Bon courage à vous.
Alternatives payantes
Pour compléter ce dossier, je rajoute les solutions payantes.
- WP Private Content Plus en rajoutant un module payant (69 €)
- Private Content (35 € sans abonnement)
- Ultimate Member (40 € à renouveller annuellement pour les mises à jour)




