ドメインアクティベーション

ドメインアクティベーションとは、1つのライセンスをどのサイト(ドメイン)で使用しているか を記録・管理するしくみです。

AppCotton では、ライセンスそのものと「使用しているサイト情報」は 別テーブル に保存されます。

  • ライセンス:利用権
  • アクティベーション:利用しているサイトの履歴・状態

アクティベーション情報が保存される場所

wp_appcotton_license_activations
カラム説明
idアクティベーションID
license_idどのライセンスか
domain認証されたドメイン(正規化後)
site_url実際の URL(任意/調査用)
instance_id同一ドメイン内の環境識別用(任意)
statusactive / deactivated
first_activated_at最初に認証された日時
last_checked_at最後に利用が確認された日時

なぜ「ドメイン記録」が必要なのか?

  • 複数サイトライセンスを正しく管理するため
  • 不正共有(第三者配布)を防ぐため
  • 解除 → 別ドメインで再利用を可能にするため
例)
3サイト版ライセンス → 3つのドメインまで登録可能
4つ目で認証を試みる → エラー「上限に達しています」

アクティベーションの流れ

認証リクエストは以下の情報を AppCotton に送信します:

license_key
product_slug
domain

AppCotton が判定:

  1. ライセンスが有効か?(status が active か)
  2. product_slug が一致しているか?
  3. 既に登録されているドメイン数は許容範囲内か?
  4. ドメインが新規なら、枠内かどうか確認
  5. 問題なければ 新規アクティベーションを記録

ドメインの正規化(重要)

ユーザーのサイト URL は多様です:

https://www.example.com/
http://example.com
https://example.com?ref=123

AppCotton では、判定のために 正規化(ノーマライズ) を行います:

http/https → 無視
www. → 除外
クエリストリング → 除外

→ 最終的に "example.com" として統一

これにより、同じサイトが別サイトとして誤認される問題を防ぎます。


サイト数の上限(activation_limit)

プランに設定された activation_limit により、使用できるサイト数を制御します。

activation_limit意味
1シングルサイト
33サイトまで利用可能
55サイトまで利用可能
-1無制限

上限に達した場合の挙動

→ 認証エラー:domain_limit_reached
→ ユーザーはマイページで不要ドメインを解除する必要あり

ドメイン解除(ユーザー操作)

ユーザーは自身のマイページから 不要になったドメインを解除 できます。

マイページ → ライセンス一覧 → 対象ライセンス → ドメイン管理 → 「解除する」

解除すると:

status: active → deactivated
残り利用可能数 = 残枠 + 1

→ 別のドメインで再認証できるようになる


「自動解除」ポリシー(任意)

制作会社などの運用で、サイトリプレイスが頻繁な場合:

最後のチェック(last_checked_at)から 90日経過 → 自動で deactivated へ

といった運用ルールも採用できます。


不正利用防止のポイント

防止策説明
ドメイン正規化URL差異による誤カウントを防ぐ
制限回数 + マイページ解除制御第三者への共有抑止
last_checked_at の記録長期未使用サイトを自然整理
instance_id 利用開発・本番を区別したい場合に有効

開発者向け:認証コード例(SDK簡略版)

if ( appcotton_is_license_valid( $license_key, 'combpass_premium' ) ) {
   enable_premium();
} else {
   disable_premium();
}

まとめ

• アクティベーションは「どのサイトで使われているか」を記録する仕組み
• ドメインを正規化することで、同一サイトを一意に扱う
• activation_limit により利用可能サイト数を制御する
• ユーザーは不要ドメインを解除し、別サイトで再利用が可能
• サイト数制限があることで、不正配布を防ぎつつ正当な利用を保証する