N'autoriser l'accès que lorsque l'utilisateur a un plan d'abonnement sur Memberpress

Mon client a une installation WordPress avec Memberpress, qui est l’endroit où un utilisateur se connecte pour accéder à Discourse.

Existe-t-il un moyen de n’autoriser l’accès à Discourse que si l’utilisateur dispose d’un plan Memberpress actif ?

Merci,
Per

Consultez ma première réponse à ce sujet pour obtenir des détails sur la façon de restreindre les connexions à Discourse : How to prevent some WP users from being able to login to Discourse. Cela suppose que le site WordPress fonctionne comme fournisseur SSO pour Discourse et que vous utilisez le plugin WP Discourse.

1 « J'aime »

Merci Simon, c’est génial ! :slight_smile:

Cela me permet de vérifier l’accès avant de rediriger l’utilisateur vers Discourse.
Sais-tu s’il existe une bonne méthode pour vérifier si un utilisateur a un abonnement actif ?
Cela serait la condition sur laquelle je déciderais de le rediriger ou non vers Discourse.

Merci !!

Je suis certain qu’il existe un moyen de le faire, mais je ne suis pas sûr de savoir comment accéder au niveau d’abonnement Memberpress d’un utilisateur sur WordPress. Il est possible qu’il y ait des exemples dans les publications de notre catégorie Support > WordPress.

D’accord, merci :slight_smile:
Bon week-end !

1 « J'aime »

Si quelqu’un d’autre cherche à obtenir la même chose, j’ai trouvé la solution ici :

Simon : une dernière question : pendant combien de temps un utilisateur reste-t-il connecté à Discourse avant d’être déconnecté ? Ou bien l’utilisateur reste-t-il connecté indéfiniment jusqu’à ce qu’il clique sur le bouton « Déconnexion » ?

Cela est contrôlé par le paramètre du site Discourse « âge maximal de session ». Ce paramètre est défini par défaut à 1440 heures. Sauf s’il est réglé sur une valeur très faible, ce n’est pas une méthode fiable pour déconnecter les utilisateurs. En effet, il définit la durée pendant laquelle un utilisateur reste connecté depuis sa dernière visite. Réglage de l’« âge maximal de session » sur un très petit nombre d’heures pourrait également causer des désagréments pour les utilisateurs de votre site.

Je pense que votre meilleure approche serait de déconnecter les utilisateurs de Discourse via l’API lorsque leurs adhésions expirent. Voici un exemple de code montrant comment procéder : wp-discourse/lib/sso-provider/discourse-sso.php at main · discourse/wp-discourse · GitHub. Vous aurez peut-être besoin de l’aide d’un développeur pour effectuer un appel API afin de déconnecter les utilisateurs de Discourse lorsque leur adhésion expire.

1 « J'aime »

Puis-je simplement appeler la fonction logout_from_discourse() ou dois-je copier tout ce code ?

Ce n’est pas aussi simple que d’appeler simplement la fonction logout_from_discourse(), mais il devrait être possible d’utiliser un hook d’action WordPress pour appeler cette fonction lorsqu’une action spécifique est déclenchée sur votre site WordPress. Par exemple, lorsque le niveau d’adhésion d’un utilisateur est révoqué. Il est possible qu’un membre de la communauté Discourse puisse vous aider avec la syntaxe nécessaire pour que cela fonctionne.

1 « J'aime »