مرحباً @troygrady، آسف على الرد البطيء (أنا أجيب على الأسئلة المتعلقة بمكون WP Discourse الإضافي). سأتناول إعدادات المنطقة الزمنية والموقع بشكل منفصل (فهما غير مترابطين).
المنطقة الزمنية
هل يمكنك فقط توضيح ما إذا كنت تقصد أن نشاط المستخدم يجب أن يُعرض له بالوقت المحلي الخاص به؟ إذا كان الأمر كذلك، فعلى عكس ووردبريس، هذا هو الوضع الافتراضي حاليًا في Discourse (بدون أي استخدام لـ DiscourseConnect)، وسيتم تحديثه تلقائيًا إذا لم يقم المستخدم بتعيينه. على سبيل المثال، انتقلت مؤخرًا من المنطقة الزمنية Australia/Perth إلى Europe/Oslo. لم ألمس إعداد المنطقة الزمنية في ملفي الشخصي هنا على meta، وهو يقرأ الآن
هل تريد سلوكًا مختلفًا عن هذا؟
الموقع
يمكنك مزامنة موقع تم تعيينه في ملف تعريف مستخدم ووردبريس مع حقل الموقع في ملف تعريف المستخدم على Discourse. لا تتم المزامنة افتراضيًا لأنه لا يوجد حقل قياسي في ووردبريس يعادل حقل الموقع في Discourse. تحتاج إلى إضافة بعض التعليمات البرمجية هنا. في ملف functions.php الخاص بالسمة الخاصة بك أو في مكان آخر يمكنك إضافة تعليمات برمجية، تحتاج إلى إضافة شيء مثل ما يلي، مع استخدام الجزء الرئيسي لـ wpdc_sso_params filter.
function sync_discourse_location( $params, $user ) {
$location = get_user_meta( $user->ID, 'user_location_meta', true );
if ( $location ) {
$params['location'] = $location;
}
return $params;
}
add_filter( 'wpdc_sso_params', 'sync_discourse_location', 10, 2 );
لاحظ أنك ستحتاج إلى استبدال ‘user_location_meta’ بأي حقل بيانات تعريف المستخدم يتم استخدامه لتخزين موقع المستخدم في مثيل ووردبريس الخاص بك (أي أي حقل يستخدمه المكون الإضافي الذي تستخدمه لإضافة مواقع المستخدمين إلى ووردبريس).
لاحظ أيضًا أن حقل الموقع في Discourse هو مجرد حقل “سلسلة نصية”، مما يعني أنه سيعرض ببساطة أي شيء يتم وضعه فيه حرفيًا. ليس له أي تأثير على المنطقة الزمنية للمستخدم وليس تحديد موقع جغرافي (أي مرتبط بالخرائط بأي شكل من الأشكال).
