بخصوص إضافة اشتراكات Discourse، ماذا سيحدث إذا قمت بتغيير بعض الإعدادات من Stripe نفسها؟ على سبيل المثال، لا يمكن من خلال Discourse جعل خطة لمنتج ما تدفع دفعة واحدة. يجب أن تكون اشتراكًا يوميًا أو أسبوعيًا أو شهريًا أو سنويًا. ولكن إذا ذهبت إلى stripe.com، فيمكنك تغيير اشتراك موجود إلى دفعة واحدة. هل يمكنني فعل ذلك؟ كيف سيؤثر هذا التغيير على طريقة عمل تلك الخطة في Discourse؟ هل ستصبح بعد ذلك دفعة واحدة؟
هذا ممكن بالتأكيد! إذا قمت بإلغاء تحديد مربع الاختيار “متكرر” في شاشة إنشاء الخطة، فستكون دفعة لمرة واحدة.
ومع ذلك، لا يمكنك تعديل الخطط الموجودة بمجرد إنشائها.
أنت محق! لقد ارتكبت خطأً بسيطاً. ما كنت أقصد حقا هو السؤال عما إذا كان من الممكن إجراء دفعة لمرة واحدة تنتهي ولا تستمر إلى ما لا نهاية. على سبيل المثال، شيء مثل “تذكرة يوم واحد”، حيث تدفع 5 دولارات وتُضاف إلى مجموعة خاصة، ثم بعد يوم واحد، على سبيل المثال، تنتهي الاشتراك وتُزال من المجموعة حتى تدفع مرة أخرى. هل هذا ممكن؟
للأسف، ليس في هذا الوقت.
أفعل شيئًا مشابهًا في إضافة (plugin). أقوم (بشكل غير صارم) بإضافة إجراء إلى نموذج user_group، بحيث عندما يُضاف مستخدم إلى مجموعة الاشتراك، يتم تنفيذ إجراء، ثم يُزال المستخدم من المجموعة. في حالتك، ستجعل الأمر بحيث عندما يضيف الاشتراك المستخدم إلى مجموعة one-off-weeklong، فإنه:
- يضيف المستخدم إلى مجموعة
weeklongالتي تمنح الإذن لأي فئات معينة - يضيف مهمة (job) ستحذفه من مجموعة
weeklongعندما تنتهي الأسبوع - يضيف حقلًا مخصصًا للمستخدم يحتوي على تاريخ بداية الأسبوع، حتى تتمكن من حذفه في حال حدوث كارثة في Redis
- يزيله من مجموعة
one-off-weeklong.
إذا كنت مهتمًا بذلك، يمكنك التواصل معي أو النشر في قناة Marketplace.
لكن هذا سخيف. بدلاً من ذلك، فقط أضف رد اتصال للاشتراك (إذا كان اشتراكًا) أو للعميل (إذا كان دفعة لمرة واحدة). العميل هو تسمية خاطئة نوعًا ما. يحتوي على معرف عميل Stripe ومعرف منتج Stripe. لذا افعل شيئًا مثل
add_model_callback(DiscourseSubscriptions::Subscription, :after_save) do
Rails.logger.warn("الآن لدي اشتراك #{self.external_id} لـ #{self.customer_id}")
# افعل شيئًا
end
add_model_callback(DiscourseSubscriptions::Customer, :after_save) do
Rails.logger.warn("عميل #{self.product_id} لـ #{self.user_id}")
# افعل المزيد من الأشياء
end
مرحباً، هل قمت بحل هذه المشكلة؟
هل يمكنك تقديم المزيد من الإرشادات؟ مثل كيفية تنفيذ هذه الميزة. أنا لست على دراية بـ Rails.. شكرًا!
أعتقد أن هذه أفضل إجاباتي المجانية.
لقد قمت بحلها عن طريق تعديل المكون الإضافي لاشتراك الخطاب. شكرا لك.
لكنني اكتشفت أنني لا أستطيع حذف المنتجات حتى باستخدام المكون الإضافي الأصلي لاشتراك الخطاب. هل لديك أي فكرة؟
لست بحاجة إلى حذفها. إنها لا تسبب أي ضرر. إنها مطلوبة كسجل للأشياء التي بعتها. يجب أن تكون قادرًا على حذفها من لوحة تحكم Stripe.
لا أعرف ما إذا كان هذا لا يزال شيئًا تريد تحقيقه، أو إذا كنت قد وجدت طريقة للقيام بذلك؟ يبدو أنه ليس شيئًا مدمجًا ليتم أتمتته باستخدام discourse، ولكن قد تكون هناك طريقة أخرى للقيام بذلك. يبدو الأمر أشبه بصفقة مقهى حيث يتعين عليك شراء مشروب جديد كل يوم لتتمكن من الجلوس على إحدى طاولاته.
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.


