التعامل مع العضويات الملغاة

أنا أستخدم WordPress SSO لتفويض الأشخاص الذين اشتروا عضوية (لقد طبقت منطقًا مخصصًا في WordPress لتحديد ما إذا كانوا أعضاءً). كل شيء يعمل بشكل جيد، لكنني أتساءل عن كيفية التعامل مع الأعضاء الملغين.

من الواضح أن إلغاء عضويتهم يعني أنهم لن يتمكنوا من تسجيل الدخول. للأسف، أحتاج إلى تسجيل خروجهم يدويًا عند إلغاء عضويتهم، في حال استمروا في الوصول إلى المنتدى والحفاظ على جلستهم نشطة (كانت أي إجراءات يدوية شيء اعتقدت أنني تركته وراءي عندما انتقلت من مجموعتي على فيسبوك).

لكن لدي مشكلتان إضافيتان في ذهني:

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

هل يتم معالجة كل ذلك عبر قمع المستخدمين؟ وما هي أفضل الممارسات لأتمتة هذه العملية؟ أفترض أن الأمر يتطلب نوعًا من الكود المخصص، لكنني أتحقق للتأكد من إمكانية تجنب ذلك.

شكرًا لك.

يمكنك إخفاء هويتهم. بهذه الطريقة تظل المعلومات محفوظة، لكن دون ذكر اسم المستخدم.

شيء آخر يمكنك استخدامه هو تنفيذ منطق مخصص، فبدلاً من إنشاء المستخدم، أضفه إلى مجموعة جديدة. بهذه الطريقة، يجب أن يكون الملخص متاحًا فقط لأولئك الذين يمكنهم الوصول إلى الفئة.

شيء آخر يمكنك فعله هو تشغيل نوع من مهام الجدولة الزمنية (cronjob) تجبر على تسجيل الخروج (أو إزالة الحساب) لجميع المستخدمين الذين تم إلغاء اشتراكهم.

شكرًا لك، @marianord. أخشى أنني لم أفهم الفقرة الثانية بالكامل. عندما تقول “بدلاً من إنشاء المستخدم”، إلى أي مرحلة في دورة حياة المستخدم تقصد؟ ربما أغفلت نقطة بسيطة هنا، لكنني غير واضح بشأن الاقتراح. هل يمكنك التوضيح من فضلك؟

أيضًا، سأبحث في ميزة إخفاء الهوية، لكن لدي بضع أسئلة حولها.

  • كيف سيظهر محتواهم من حيث اسم المستخدم المعروض بجانب منشوراتهم؟
  • إذا نجحت في إقناعهم بإعادة الاشتراك في عضويتي (نفس البريد الإلكتروني، إلخ)، هل سيؤدي ذلك إلى “إخفاء الهوية” بأي شكل، أي هل ستُظهر منشوراتهم القديمة مرة أخرى مع اسم مستخدمهم؟

شكرًا لك مرة أخرى.

بالمناسبة، أكبر قلق لدي في كل هذا يتعلق برسائل البريد الإلكتروني الموجزة، لأنها موجهة للمستخدمين (إرسال رسائل بريد إلكتروني). أفترض أن خيارًا آخر هو تعديل إعدادات الرسائل الموجزة يدويًا لمنع إرسالها نهائيًا، أليس كذلك (رغم أن هذا إجراء يدوي مرة أخرى، وأرجو أن يصبح ممكنًا عبر واجهة برمجة التطبيقات في النهاية).

إذا كان ذلك ممكنًا، فلن أحتاج تقنيًا إلى فعل أي شيء مع المستخدم. يمكنهم البقاء كمستخدمين صالحين في Discourse، ستتوقف رسائل البريد الإلكتروني (انظر أعلاه)، لكنهم لن يتمكنوا بعد ذلك من تسجيل الدخول.

ربما يكون هذا الحل مجديًا. ما رأيكم في ذلك؟

قد يكون تعليق المستخدم عبر واجهة برمجة تطبيقات Discourse طريقة جيدة لأتمتة هذه العملية. عند تعليق المستخدم، يتم تسجيله خارج نظام Discourse ولن يتم إرسال رسائل البريد الإلكتروني الموجزة إليه بعد الآن. إذا تم تقديم رسالة عند تعليق المستخدم، فسيتم إرسال هذه الرسالة كبريد إلكتروني للمستخدم. يمكن استخدام ذلك لتشجيعهم على تجديد عضويتهم.

من الجدير بالذكر أن خاصية التعليق صُممت للتعامل مع المستخدمين الصعاب، ولم تُصمم للتعامل مع حالة انتهاء صلاحية العضوية التي قد تُجدد في المستقبل. قد تجد أنك بحاجة إلى تخصيص نص user_notifications.account_suspended.text_body_template في موقعك لتعديل قالب البريد الإلكتروني المُرسل إلى المستخدمين المعلقين.

تظهر المنشورات التي أنشأها مستخدم تم إخفاء هويته بهذا الشكل:

لا توجد طريقة سهلة لإلغاء إخفاء هوية المستخدم. النهج الوحيد الذي أعرفه هو دمج المستخدم المجهول مع مستخدم جديد من خلال وحدة تحكم Rails. نظرًا لأن إخفاء هوية المستخدم يزيل جميع البيانات التعريفية منه، فقد يكون من الصعب معرفة الحسابات التي يجب دمجها. إذا كان هناك احتمال أن يجدد الأعضاء عضوياتهم، فإن تعليق المستخدم هو على الأرجح نهج أفضل.

شكرًا لك، @simon - هذا مفيد جدًا.

نعم، بناءً على ما تقوله، يبدو أن التعليق هو النهج الصحيح هنا. لكن لدي سؤال بخصوص رسائل البريد الإلكتروني المرسلة. لدي رسائل بريد إلكتروني تعتمد على نظام إدارة علاقات العملاء (CRM) تُرسل عند إلغاء المستخدمين، لذا لا أريد أن يرسل Discourse أي شيء على الإطلاق.

أنت تذكر: “إذا تم تقديم رسالة عند تعليق المستخدم، فستُرسَل هذه الرسالة كبريد إلكتروني إلى المستخدم”.

إذا لم أقدم رسالة، فهل يعني ذلك أنه لن يتم إرسال أي شيء، ولا داعي للقلق بشأن تحديث القالب على الإطلاق (لأنه لن يُرسل أبدًا)؟

أنا فقط أراجع عملية التعليق، ربما أنا غير واضح تمامًا حول كيفية استخدام حقلي “سبب التعليق” و"البريد الإلكتروني".

بشكل أساسي، هدفي هو تعليق المستخدم وعدم فعل أي شيء آخر :slight_smile:

شكرًا لك مرة أخرى.

هذا صحيح. أسهل طريقة لاختبار ذلك هي إنشاء مستخدم بعنوان بريد إلكتروني مؤقت، ثم محاولة إيقافه مؤقتًا وإعادة تفعيله من خلال واجهة المستخدم.

عند إيقاف مستخدم مؤقتًا، يجب تعيين قيمتي suspended_until و reason. يتم عرض هذه الحقول للمستخدم الموقوف عند محاولته تسجيل الدخول إلى الموقع. يمكنك تخصيص هذا النص بالبحث عن login.suspended_with_reason في صفحة الإدارة / التخصيص / النصوص.

ما لم تكن قد فعّلت إعداد الموقع hide suspension reasons، سيظهر إشعار بأن المستخدم قد تم إيقافه على بطاقة المستخدم وصفحة الملف الشخصي للمستخدم الموقوف. أما إذا فعّلت إعداد الموقع hide suspension reasons، فسيظهر الإشعار فقط للموظفين.