コンテンツにスキップ

Main-Store Integration Requirements (Product Badges & Priority Support)

概要

Mainサイト(サポートフォーラム)とStoreサイト(販売サイト)を連携させ、製品ごとの購入状況を反映します。

目的

  1. 製品別バッジの表示: "Pro User" ではなく "[Cross Poster Pro]" のような具体的な製品名バッジを表示。
  2. 表示制御 (Privacy): ユーザー設定でバッジ表示のON/OFFが可能(デフォルトON)。
  3. 優先サポート (Priority Support):
    • 有効なProライセンスを1つでも所持しているユーザーには [優先サポート] バッジを表示。
    • (将来実装)管理者との非公開やり取り(Private Replies/Topics)の権限を付与。

データフロー & 管理データ

Mainサイト管理データ (User Meta)

  • 製品ステータス: netguide_license_{product_slug}
    • Value: { status: 'active', expires_at: '...' } (Serialized Array or JSON)
  • 表示設定: netguide_show_badges
    • Value: 1 (Show, Default) / 0 (Hide)

API Payload (Store -> Main)

  • username: ユーザーID
  • product_slug: cross-poster-pro (製品識別子)
  • status: active / expired
  • expires_at: 2025-12-31...

ロジック詳細

1. バッジ表示ロジック (bbPress Hook)

  • 前提: ユーザー設定 netguide_show_badges1 であること。
  • ループ: 保持しているライセンス情報を確認。
    • 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 を送信するように設定 (定数定義等)。