Main-Store Integration Requirements (Product Badges & Priority Support)
概要
Mainサイト(サポートフォーラム)とStoreサイト(販売サイト)を連携させ、製品ごとの購入状況を反映します。
目的
- 製品別バッジの表示: "Pro User" ではなく "[Cross Poster Pro]" のような具体的な製品名バッジを表示。
- 表示制御 (Privacy): ユーザー設定でバッジ表示のON/OFFが可能(デフォルトON)。
- 優先サポート (Priority Support):
- 有効なProライセンスを1つでも所持しているユーザーには [優先サポート] バッジを表示。
- (将来実装)管理者との非公開やり取り(Private Replies/Topics)の権限を付与。
データフロー & 管理データ
Mainサイト管理データ (User Meta)
- 製品ステータス:
netguide_license_{product_slug}- Value:
{ status: 'active', expires_at: '...' }(Serialized Array or JSON)
- Value:
- 表示設定:
netguide_show_badges- Value:
1(Show, Default) /0(Hide)
- Value:
API Payload (Store -> Main)
username: ユーザーIDproduct_slug:cross-poster-pro(製品識別子)status:active/expiredexpires_at:2025-12-31...
ロジック詳細
1. バッジ表示ロジック (bbPress Hook)
- 前提: ユーザー設定
netguide_show_badgesが1であること。 - ループ: 保持しているライセンス情報を確認。
cross-poster-proが Active & 期限内 -> [Cross Poster Pro] バッジ表示。- その他の製品も同様。
- 優先サポート判定:
- Activeなライセンスが1つ以上ある -> [優先サポート] バッジ表示。
2. ユーザー設定画面 (Profile Page)
- WordPress標準のプロフィール編集画面 (および bbPress のプロフィール編集画面) に設定項目を追加。
- Check: "購入製品バッジと優先サポートステータスを公開する" (デフォルトON)
3. Priority Support 機能 (Future/Next Step)
- bbPress の「Private Reply」機能などを利用し、優先サポート保持ユーザーにのみその権限 (
read_private_forums/publish_private_replies) を付与することを検討。
実装ステップ更新
Main Site Receiver (netguide-sso-receiver.php)
- API:
product_slugパラメータに対応。メタデータ構造を変更。 - UI: プロフィール画面に設定項目追加。
- UI: バッジ表示ロジックを製品別・設定連動に変更。
Store Site Sender (software-license-manager)
- API送信時に
product_slugを送信するように設定 (定数定義等)。