ドメインアクティベーションとは、1つのライセンスをどのサイト(ドメイン)で使用しているか を記録・管理するしくみです。
AppCotton では、ライセンスそのものと「使用しているサイト情報」は 別テーブル に保存されます。
- ライセンス:利用権
- アクティベーション:利用しているサイトの履歴・状態
アクティベーション情報が保存される場所
wp_appcotton_license_activations
| カラム | 説明 |
|---|---|
| id | アクティベーションID |
| license_id | どのライセンスか |
| domain | 認証されたドメイン(正規化後) |
| site_url | 実際の URL(任意/調査用) |
| instance_id | 同一ドメイン内の環境識別用(任意) |
| status | active / deactivated |
| first_activated_at | 最初に認証された日時 |
| last_checked_at | 最後に利用が確認された日時 |
なぜ「ドメイン記録」が必要なのか?
- 複数サイトライセンスを正しく管理するため
- 不正共有(第三者配布)を防ぐため
- 解除 → 別ドメインで再利用を可能にするため
例)
3サイト版ライセンス → 3つのドメインまで登録可能
4つ目で認証を試みる → エラー「上限に達しています」
アクティベーションの流れ
認証リクエストは以下の情報を AppCotton に送信します:
license_key
product_slug
domain
AppCotton が判定:
- ライセンスが有効か?(status が active か)
- product_slug が一致しているか?
- 既に登録されているドメイン数は許容範囲内か?
- ドメインが新規なら、枠内かどうか確認
- 問題なければ 新規アクティベーションを記録
ドメインの正規化(重要)
ユーザーのサイト 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 | シングルサイト |
3 | 3サイトまで利用可能 |
5 | 5サイトまで利用可能 |
-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 により利用可能サイト数を制御する
• ユーザーは不要ドメインを解除し、別サイトで再利用が可能
• サイト数制限があることで、不正配布を防ぎつつ正当な利用を保証する