لقد جربتها، لكن هذه الطريقة لا تقوم بتعليق حساب المستخدم في نظام Discourse، مما يعني أنه سيظل يتلقى المنشورات عبر البريد الإلكتروني ويمكنه التفاعل مع المنتدى بهذه الطريقة.
أوه، فهمت. لا أرى أن الإضافة تحتوي على وظيفة لإيقاف المستخدم مؤقتًا (ولكن قد لا أعرف أين أبحث). أسوأ ما يمكنك فعله هو إضافة استدعاء واجهة برمجة التطبيقات إلى الخطاف الذي يُستدعى عند فشل اشتراك المستخدم، مما يؤدي إلى إيقافه مؤقتًا. يمكنك العثور عليه باستخدام Reverse engineer the Discourse API
تعليق وإلغاء تعليق المستخدمين سيكون الجزء السهل. الحيلة تكمن في تحديد إجراءات WooCommerce التي يجب ربطها.
يبدو أن إجراء woocommerce_subscription_status_updated يجب أن يعمل. يمرر هذا الخطاف ثلاث معلمات: $subscription، $new_status، $old_status. معلمات الحالة عبارة عن سلاسل نصية، لذا يجب أن تكون قيمتها واضحة بحد ذاتها. المعلمة $subscription هي كائن من نوع WC_Subscription. أفترض أنه يحتوي على تفاصيل تتيح لك العثور على معرف المستخدم المرتبط بالاشتراك. ومع ذلك، سأحتاج إلى إلقاء نظرة عليه للتأكد.
المعاملات:$subscription كائن من نوع WC_Subscription يمثل الاشتراك الذي تغيرت حالته للتو.
الوصف: يُفعّل هذا الإجراء بعد تغيير حالة الاشتراك المحدد بـ $subscription إلى “نشط”. قد تكون حالة الاشتراك انتقلت من “قيد الانتظار” إلى “نشط”، أو من “معلّق” إلى “نشط”، أو من أي حالة مخصصة أخرى إلى “نشط”.
المعاملات:$subscription كائن من نوع WC_Subscription يمثل الاشتراك الذي تغيرت حالته للتو.
الوصف: يُفعّل هذا الإجراء بعد تغيير حالة الاشتراك المحدد بـ $subscription.
قد تكون حالة الاشتراك انتقلت من “قيد الانتظار” إلى “ملغى”، أو من “معلّق” إلى “ملغى”، أو من “قيد الانتظار للإلغاء” إلى “ملغى”، أو من أي حالة مخصصة أخرى إلى “ملغى”.
الإجراء:'woocommerce_subscription_status_expired'
المعاملات:$subscription كائن من نوع WC_Subscription يمثل الاشتراك الذي تغيرت حالته للتو.
الوصف: يُفعّل عندما يصل الاشتراك إلى نهاية مدته، وذلك إذا تم تحديد مدة عند شراء منتج الاشتراك، أو إذا تم تحديد تاريخ انتهاء للاشتراك بطريقة أخرى.