إضافة مستخدمين جدد تلقائيًا (من تكامل WP) إلى مجموعة

نعم، هذا هو المثال المفقود في الموضوع الذي ربطتُ به. يمكنك إضافة المستخدمين إلى مجموعة كجزء من عملية تسجيل الدخول عبر SSO باستخدام معلمة SSO المسماة add_groups. بشكل افتراضي، لا يرسل مكون WP Discourse هذه المعلمة مع حمولة SSO، لكن المكون يحتوي على فلتر يمكن استخدامه لإضافة هذه المعلمة إلى حمولة SSO.

الكود التالي، عند إضافته إلى ملف functions.php الخاص بسمتك، أو إلى مكون إضافي، يجب أن يعمل معك. يمكنك إضافة المستخدمين إلى مجموعات متعددة بهذه الطريقة. تقبل معلمة add_groups قائمة مفصولة بفواصل بأسماء المجموعات (بدون مسافات قبل أو بعد الفواصل):

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

    return $params;
}

إذا كنت ترغب فقط في إضافة مستخدمين محددين إلى المجموعة، يمكنك استدعاء الدالة بهذه الطريقة:

add_filter( 'wpdc_sso_params', 'wpdc_custom_sso_params', 10, 2 );
function wpdc_custom_sso_params( $params, $user ) {
    if (/*أضف شرطًا هنا للتحقق مما إذا كان يجب إضافة المستخدم إلى المجموعة */) {        
        $params['add_groups'] = 'your_group_name'; 
    }

    return $params;
}

يمكنك أيضًا إزالة المستخدمين من المجموعات باستخدام معلمة 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;
}

أو

add_filter( 'wpdc_sso_params', 'wpdc_custom_sso_params', 10, 2 );
function wpdc_custom_sso_params( $params, $user ) {
    if (/*أضف شرطًا هنا للتحقق مما إذا كان يجب إزالة المستخدم من المجموعة */) {        
        $params['remove_groups'] = 'your_group_name'; 
    }

    return $params;
}

العيب الرئيسي لهذا النهج مقارنة باستخدام دالة add_user_to_discourse_group التي ربطتُ بها هو أنه يتطلب من المستخدمين الحاليين تسجيل الخروج ثم تسجيل الدخول مرة أخرى إلى Discourse قبل تحديث عضوياتهم في المجموعات.

5 إعجابات