自動車クラブのためにゲート付きのDiscourseフォーラムをセットアップしていますが、加入者がサイトにアクセスする際に問題が発生しています。現在、ユーザーがグループに属しているかどうかを確認するカスタムコードがあります。もし属していなければ、私たちのウェブサイトにリダイレクトされます。そこには、私たちが提供する3つの会員プランの購入リンクがあります。
以下がそのコードです。
<script type="text/discourse-plugin" version="0.8.42">
api.onPageChange((url, title) => {
const allowedGroups = ['Lite', 'Member', 'VIP', 'staff'];
const isUserInAllowedGroup = api.getCurrentUser().groups.some(group => allowedGroups.includes(group.name));
if (!isUserInAllowedGroup) {
window.location.href = "https://centralcoastdriversclub.webflow.io/select-a-plan";
}
});
</script>
ドキュメントを読んでインストールし、3つのWebhookイベントを設定し、すべてを完璧に実行しましたが、まだスムーズに動作しません。最初 の問題は、ウェブサイトのStripeの製品購入リンクを使用すると、Webhookがcheckout.session.completedに対して「メールが見つかりません」という422エラーを返し、customer.subscription.updatedに対して「顧客が見つかりません」というエラーを返すことです。これにより、Discourseにサブスクリプションが作成されたり、ユーザーがグループに追加されたりしません。理想的には、ウェブサイトから、人々が購入している特定の会員プランに移動するリンクを用意したいと考えています。
フォーラムのURL /s/subscriptions からテストすると、メンバーはDiscourseのサブスクリプションタブに追加されますが、残念ながらそれぞれのグループには追加されません。また、Discourse経由でアクセスすると、動的なリンクが使用され、メールがユーザーのアカウントにロックされることに気づきました。これは興味深いですね!
私のコードとこれまでの説明からお察しいただけるように、ユーザーが適切なグループに追加されないと、コードがリダイレクトするため、フォーラムを表示できません。
何かを見落としているに違いありませんが、どうしても解決できません。
どんな助けでも大変感謝します。よろしくお願いします!