Ajout automatique de nouveaux utilisateurs (de l'intégration WP) à un groupe

Je m’excuse si cela a déjà été demandé, mais je cherche un moyen d’ajouter automatiquement les utilisateurs ajoutés via l’intégration WP (SSO) à un groupe d’utilisateurs spécifique.

Je n’ai pas réussi à trouver de documentation expliquant comment réaliser cela, donc toute orientation serait appréciée :slight_smile:

Prenez soin de vous et à bientôt,

Alex

2 « J'aime »

Je suppose que vous utilisez le plugin WP Discourse pour le SSO. Ce plugin propose plusieurs fonctions permettant de gérer l’appartenance aux groupes Discourse. Consultez Manage group membership in Discourse with WP Discourse SSO pour des détails sur l’utilisation de ces fonctions. Je vais bientôt mettre à jour ce sujet afin d’y ajouter un exemple plus général. N’hésitez pas à me faire savoir si quelque chose dans ce sujet n’est pas clair.

3 « J'aime »

Salut Simon – oui, c’est exact, j’utilise le plugin WP Discourse. Merci d’avoir lié à ce sujet, je surveillerai la mise à jour, mais si cela peut aider, le cas spécifique concerne WooCommerce Memberships et Subscriptions. Cela dit, je compte limiter les inscriptions d’utilisateurs aux membres payants de toute façon, donc tant qu’il s’agit d’un exemple général permettant d’ajouter chaque nouveau membre à un groupe que j’ai nommé tout le monde (juste pour le contexte, l’objectif ici est simplement de faciliter l’envoi de messages et le balisage des membres dans les annonces).

À bientôt et prends soin de toi !

1 « J'aime »

Oui, c’est l’exemple qui manque dans le sujet que j’ai lié. Vous pouvez ajouter des utilisateurs à un groupe dans le cadre du processus de connexion SSO en utilisant le paramètre SSO add_groups. Par défaut, le plugin WP Discourse n’envoie pas ce paramètre avec la charge utile SSO, mais le plugin dispose d’un filtre qui peut être utilisé pour ajouter ce paramètre à la charge utile SSO.

Le code suivant, ajouté à votre fichier functions.php de votre thème ou à un plugin, devrait fonctionner pour vous. Vous pouvez ajouter des utilisateurs à plusieurs groupes de cette manière. Le paramètre add_groups accepte une liste de noms de groupes séparés par des virgules (sans espaces avant ou après les virgules) :

add_filter( 'wpdc_sso_params', 'wpdc_custom_sso_params' );
function wpdc_custom_sso_params( $params ) {
    $params['add_groups'] = 'your_group_name'; 

    return $params;
}

Si vous ne souhaitez ajouter que des utilisateurs spécifiques au groupe, vous pouvez appeler la fonction de cette manière :

add_filter( 'wpdc_sso_params', 'wpdc_custom_sso_params', 10, 2 );
function wpdc_custom_sso_params( $params, $user ) {
    if (/*ajoutez ici une condition pour vérifier si l'utilisateur doit être ajouté au groupe */) {        
        $params['add_groups'] = 'your_group_name'; 
    }

    return $params;
}

Vous pouvez également supprimer des utilisateurs de groupes avec le paramètre SSO remove_groups.

add_filter( 'wpdc_sso_params', 'wpdc_custom_sso_params' );
function wpdc_custom_sso_params( $params ) {
    $params['remove_groups'] = 'your_group_name'; 

    return $params;
}

ou

add_filter( 'wpdc_sso_params', 'wpdc_custom_sso_params', 10, 2 );
function wpdc_custom_sso_params( $params, $user ) {
    if (/*ajoutez ici une condition pour vérifier si l'utilisateur doit être supprimé du groupe */) {        
        $params['remove_groups'] = 'your_group_name'; 
    }

    return $params;
}

Le principal inconvénient de cette approche par rapport à l’utilisation de la fonction add_user_to_discourse_group que j’ai liée est qu’elle nécessite que les utilisateurs existants se déconnectent puis se reconnectent à Discourse avant que leurs adhésions aux groupes ne soient mises à jour.

5 « J'aime »

Super, merci Simon ! Par curiosité, serait-ce trop difficile d’inclure un exemple pour WooCommerce Memberships ?

Ce serait vraiment utile si cela permettait également de retirer automatiquement les personnes du groupe lorsqu’il n’y a plus d’abonnement WooCommerce actif, et de les ajouter au groupe uniquement lorsqu’il y en a un. Ainsi, aucune vérification manuelle ne serait nécessaire et tout serait entièrement automatisé (lorsque les plans sont annulés et réactivés, etc.). En effet, les autorisations dans Discourse peuvent être limitées pour permettre aux utilisateurs de consulter ou de publier uniquement s’ils ont un abonnement actif (et font partie du groupe auquel ils sont ajoutés).

Toute orientation que je pourrais transmettre à un développeur pour ajouter cette fonctionnalité serait extrêmement utile.

À bientôt,

Alex

Il devrait être possible de supprimer automatiquement les utilisateurs d’un groupe Discourse lorsque leur adhésion WooCommerce a expiré. Pour ce faire, vous utiliseriez la fonction remove_user_from_discourse_group que j’ai liée.

Je ne connais pas suffisamment le plugin WooCommerce Memberships & Subscriptions pour savoir quels hooks d’action sont appelés lors de la création ou de l’annulation d’une adhésion. Peut-être que d’autres membres de la communauté Meta sauront comment procéder. Vous pouvez également créer un sujet dans notre catégorie Marketplace pour trouver un développeur capable de vous aider.

2 « J'aime »

Très bien, merci pour cela, Simon. Je vais jeter un coup d’œil et voir si je peux engager un développeur expérimenté avec Discourse (et je lui transmettrai ces informations). En parlant de ça, par curiosité, auriez-vous une liste d’experts de confiance que vous pourriez recommander pour ce type de travail ?

Je n’ai pas de liste de membres de ce forum qui réalisent des intégrations WordPress/Discourse. Je serais intéressé de savoir quels développeurs de la communauté Meta sont intéressés par le travail sur les intégrations WordPress/Discourse.

Je n’ai reçu aucun rapport négatif concernant des membres de la communauté liés aux intégrations WordPress. Si vous engagez un développeur qui a une histoire dans la communauté, vous devriez être en sécurité. Je suis toujours heureux de répondre aux questions liées à la création d’intégrations sur le plugin WP Discourse. Les développeurs sont libres de me contacter s’ils sont bloqués sur quelque chose.

2 « J'aime »

Super, je suppose que je vous recontacterai à un moment donné ! Je pourrais finir par regrouper tous ces changements dans une petite extension pour le plugin WP Discourse, on verra bien. :slight_smile: