لا يمكنني إضافة مستخدم إلى منتدى Discourse من موقع WordPress عند إضافة المستخدم في نظام الاشتراك

مرحباً @simon، أواجه مشكلة. هذا هو الكود الذي أستخدمه عند تغيير دور المستخدم.

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
    }
}


    
}

الغرض من الكود هو إضافة أو إزالة مستخدم بناءً على شرط، ولكن في أي حالة أو أي شرط، فإنه يرسل إشعارًا إلى مسؤولي المنتدى بأنه يجب الموافقة على المستخدم أو رفضه أو حذفه. لماذا يحدث هذا في أي حالة؟ في حالة الـ else، أريد فقط إزالة المستخدم من مجموعة معينة، ولكن في تلك الحالة، لا يزال يتم إرسال إشعار المراجعة للمستخدم الجديد إلى المسؤول.

شيء آخر: عندما يسجل المستخدم في موقع ووردبريس، يتم إضافته تلقائيًا إلى هذه المجموعات trust_level_0 و trust_level_1، ولا أعرف السبب.

من فضلك ساعدني، يمكنني أيضًا مشاركة خطاف تسجيل المستخدم معك.