تعيين حقول المستخدم المخصصة

يمكنك تحديث حقول المستخدمين التي أنشأتها على Discourse عبر SSO. لا يتطلب ذلك إضافة خارجية. للقيام بذلك، تحتاج إلى معرفة الاسم الذي يستخدمه Discourse في قاعدة البيانات للحقل المخصص. أسهل طريقة أعرفها للقيام بذلك هي الذهاب إلى صفحة Admin / Customize / User Fields ثم تحميل النسخة JSON من الصفحة. على سبيل المثال https://forum.example.com/admin/customize/user_fields.json

ستبدو بيانات JSON للصفحة شيئًا مثل هذا:

{
user_fields: [
{
id: 12,
name: "News Letter",
description: "Send me a newsletter",
field_type: "confirm",
editable: false,
required: true,
show_on_profile: false,
show_on_user_card: false,
position: 3
},
{
id: 13,
name: "Company",
description: "Where do you work?",
field_type: "text",
editable: true,
required: false,
show_on_profile: true,
show_on_user_card: true,
position: 4
}
]
}

يتم تسمية حقول المستخدمين المخصصة user_field_<field_id>. هذا يعني أن اسم حقل “News Letter” من مثال JSON الخاص بي هو user_field_12، واسم حقل “Company” هو user_field_13. استخدم هذه المعلومات لتحديث حمولة SSO.

كمثال، باستخدام فلتر wpdc_sso_params الذي ذكرته في منشوري السابق، الكود التالي المضاف إلى ملف functions.php الخاص بسمتك سيُعدّ حقل “Company” لجميع المستخدمين إلى “acme” عند تسجيل دخولهم عبر SSO. استبدل my_namespace في اسم الدالة بفضاء اسم فريد لموقعك:

add_filter( 'wpdc_sso_params', 'my_namespace_set_discourse_custom_field', 10, 2 );
function my_namespace_set_discourse_custom_field( $sso_params, $user ) {
	$sso_params['custom.user_field_13'] = 'acme';

	return $sso_params;
}

لإضافة حقول تعتمد على بيانات مستخدم WordPress من موقعك، استخدم معلمة $user في الدالة للحصول على تفاصيل حول مستخدميك.