لأغراض الاختبار، غيّرتها إلى 5 فقط لتكون أكثر أمانًا. ومع ذلك، لم يرى المستخدم الاختباري رسالة التوعية سوى مرة واحدة.
كما تفحصت الكود:
كما أفهم الأمر، فإن الدالة تستبعد أولاً الرسائل الخاصة والمستخدمين الذين لديهم بالفعل سجل يشير إلى أن رسالة التوعية قد عُرضت. هذا الجزء منطقي بالنسبة لي.
ثم تحدد ما إذا كان المستخدم ينشئ موضوعًا جديدًا أو ردًا، وتُحسب إجمالي عدد منشورات/مواضيع المستخدم.
الجزء التالي هو ما يُربكني. إذا كان إجمالي عدد المنشورات أقل من الحد المكوّن، فإننا ننشئ السجل الذي يمنع عرض رسالة التوعية مرة أخرى - ثم نعرض الرسالة.
ما الذي أفتقده هنا؟
على سبيل المثال، إذا تُرك educate_until_posts على قيمته الافتراضية وهي 2، فإنني أتوقع أن تُعرض الرسالة للمستخدم في منشوريه الأولين.
يبدأ المستخدم بإنشاء منشوره الأول تمامًا. إنه ليس رسالة خاصة، ولا يوجد سجل UserHistory موجود بعد، لذا تُعرض الرسالة - وهذا منطقي.
لكن لماذا يُنشأ سجل UserHistory فورًا بعد ذلك؟ أليس هذا من شأنه منع عرض الرسالة مرة أخرى أبدًا؟
واو، ما هذه الحفرة العميقة! أعتقد أن الارتباك ناتج حقًا عن عدم تحديث اسم الإعداد (educate_until_posts)، لأنه، حسب علمي، في PR#400074 يبدو أن النية هي إظهار الإشعار مرة واحدة فقط، ولا مرة أخرى أبدًا، بغض النظر عن أي عدد.
لذا لم يعد الإعداد يعني الآن “إظهار الرسالة لأول N منشور”، بل أصبح:
“إظهار رسالة التثقيف فقط إذا كان عدد منشورات المستخدم أقل بالفعل من هذا الحد، وحتى في هذه الحالة، إظهارها مرة واحدة فقط.”
@Roman هل من الصحيح أن نعتقد أنه يجب علينا تحديث نص هذا الإعداد؟
كان الدافع الرئيسي وراء هذا التغيير هو منع ظهور رسالة التوعية بشكل متكرر. لكن بعد أن اطّلعت على هذا الموضوع، أعتقد أنني ربما مبالغة قليلاً، إذ إن ذلك يجعل الإعداد غير ذي صلة إذا ظهرت الرسالة مرة واحدة فقط.
سأراجع الأمر مرة أخرى لأرى ما إذا كان بإمكاني إيجاد حل وسط أفضل. وسأحدثكم هنا بمجرد أن أجد حلاً.