Hi @simon listen i am facing a problem here is my code which i am using when user role change
use WPDiscourse\Utilities\Utilities as DiscourseUtilities;
// Hook to execute when a user role changes
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', '');
// $group_names = array("haseeb-group", "moderators");
// $s2member_level_1_groups = implode(",", $group_names);
$result = DiscourseUtilities::add_user_to_discourse_group($user_id, $s2member_level_1_groups);
// var_dump($result);
// die();
// var_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
}
}
}
now the purpose of the code is to add or remove user based on condition but in any case or in any condition it gives notification to the admins of forum that there is need to approve or reject or delete user why it is coming in any case like in the else case i want to just remove user from a specific group but in that case it is again give a notification of review new user to the admin
one more thing is that when user register on the wordpress website it is automatically adding in these groups trust_level_0 and trust_level_1 why i dont know
please help and i can also share user register hook with you

