Je ne peux pas ajouter un utilisateur au forum Discourse depuis un site WordPress lorsque l'utilisateur est ajouté dans un Membership

Salut @simon, j’ai un problème. Voici le code que j’utilise lorsque le rôle d’un utilisateur change :

use WPDiscourse\Utilities\Utilities as DiscourseUtilities;

// Hook pour exécuter lorsque le rôle d'un utilisateur change
add_action('set_user_role', 'add_user_to_discourse_group_on_role_change', 10, 2);

function add_user_to_discourse_group_on_role_change($user_id, $role) {
// 	var_dump($role);
// 	die();
	  if ($role == 's2member_level1') {
            $s2member_level_1_groups = get_option('s2member_level_1_groups', '');
// 	\t  \t$group_names = array("haseeb-group", "moderators");
// 	\t\t$s2member_level_1_groups = implode(",", $group_names);
            $result = DiscourseUtilities::add_user_to_discourse_group($user_id, $s2member_level_1_groups);
// 	\t\t  var_dump($result);
// 	\t\t  die();
	  	
// 	\t\t\tvar_dump($result);
        }
		else if($role == 's2member_level2'){
			   $s2member_level_2_groups = get_option('s2member_level_2_groups', '');
			  $result = DiscourseUtilities::add_user_to_discourse_group($user_id, $s2member_level_2_groups);
		}
		
		else if($role == 's2member_level3'){
			   $s2member_level_3_groups = get_option('s2member_level_3_groups', '');
			  $result = DiscourseUtilities::add_user_to_discourse_group($user_id, $s2member_level_3_groups);
		}
	
		
		else if($role == 's2member_level4'){
			   $s2member_level_4_groups = get_option('s2member_level_4_groups', '');
			  $result = DiscourseUtilities::add_user_to_discourse_group($user_id, $s2member_level_4_groups);
		}
		
		else {
    // Collect all level groups
    $s2member_level_1_groups = get_option('s2member_level_1_groups', '');
    $s2member_level_2_groups = get_option('s2member_level_2_groups', '');
    $s2member_level_3_groups = get_option('s2member_level_3_groups', '');
    $s2member_level_4_groups = get_option('s2member_level_4_groups', '');

    // Combine all groups into one array
    $s2member_level_groups = array_merge(
        explode(',', $s2member_level_1_groups),
        explode(',', $s2member_level_2_groups),
        explode(',', $s2member_level_3_groups),
        explode(',', $s2member_level_4_groups)
    );

    // Remove duplicates
    $s2member_level_groups = array_unique($s2member_level_groups);

    // Remove user from all collected groups
    foreach ($s2member_level_groups as $group) {
        $result = DiscourseUtilities::remove_user_from_discourse_group($user_id, $group);
        // You may handle $result as needed
    }
}


    
}

Le but du code est d’ajouter ou de supprimer un utilisateur en fonction de conditions, mais dans tous les cas, il envoie une notification aux administrateurs du forum indiquant qu’il faut approuver, rejeter ou supprimer l’utilisateur. Pourquoi cela se produit-il dans tous les cas ? Par exemple, dans le cas else, je veux juste supprimer l’utilisateur d’un groupe spécifique, mais dans ce cas, une notification de révision du nouvel utilisateur est toujours envoyée à l’administrateur.

Une autre chose : lorsque l’utilisateur s’inscrit sur le site WordPress, il est automatiquement ajouté à ces groupes trust_level_0 et trust_level_1, je ne sais pas pourquoi.

Pouvez-vous m’aider ? Je peux aussi vous partager le hook d’enregistrement de l’utilisateur.