コンテンツにスキップ

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

  1. 更新テスト: Store側でサブスクリプションの「次回支払日」を変更し、Mainサイト側のメタデータが追従するか確認。
  2. 期限切れ自動OFFテスト: MainサイトのDBを直接操作して有効期限を「過去」に設定し、バッジが消えることを確認(フェイルセーフ機能の確認)。