Main-Store Integration Implementation Plan
Mainサイト(サポートフォーラム)とStoreサイト(販売サイト)を連携させ、購入ライセンスに基づいてフォーラム上のユーザーステータス(バッジ等)を自動更新する機能を実装します。
User Review Required
[!IMPORTANT] 有効期限ロジック: 連携データに 有効期限 (Expiration Date) を含めます。Mainサイト側では「ステータスがActive」かつ「期限内である」場合のみPro機能(バッジ)を有効化する判定ロジックを実装します。
Proposed Changes
Feature 1: Main Site Receiver (New Plugin)
Repository: central-docs/projects/cross-poster-pro/verification/main-site-receiver -> Mainサイトへ配置。
[NEW] netguide-sso-receiver.php
- Endpoint:
POST /wp-json/netguide/v1/update-status - Params:
username,status,expires_at - Logic:
- ユーザーメタデータ
crp_license_status,crp_license_expires_atを更新。
- ユーザーメタデータ
- Display Logic:
bbp_theme_after_reply_author_detailsフック。- 判定:
status === 'active' && expires_at > nowの場合のみバッジ表示。
Feature 2: Store Site Sender (Software License Manager Update)
Repository: software-license-manager
[MODIFY] class-main-integrator.php
- WC Subscriptions のオブジェクトから
get_next_payment_date()を取得し、Mainサイトへ送信するペイロードに追加。
Verification Plan
Manual Verification
- 更新テスト: Store側でサブスクリプションの「次回支払日」を変更し、Mainサイト側のメタデータが追従するか確認。
- 期限切れ自動OFFテスト: MainサイトのDBを直接操作して有効期限を「過去」に設定し、バッジが消えることを確認(フェイルセーフ機能の確認)。