AppCotton では、ライセンスに紐づくドメイン(利用サイト)を ユーザー自身が解除して再利用 できる仕組みを提供しています。
これにより、以下のような現実的な運用ニーズに対応します。
- サイト移転
- テスト環境 → 本番環境への切り替え
- クライアント納品後の権利移転
- 制作会社が複数案件をローテーション管理する場合
1. 解除できる条件
| 条件 | 内容 |
|---|---|
ライセンスが active であること | 期限切れや取り消しでは操作不可 |
対象ドメインが active 状態で登録されていること | 解除対象が存在している必要がある |
| 上限(activation_limit)に達している必要はない | いつでも解除可能 |
2. 解除の影響
解除を行うと、対象のアクティベーションレコードは以下のように更新されます:
status: active → deactivated
last_checked_at: 現在時刻
同時に、ライセンスに紐づく 利用可能なドメイン枠 が 1つ増えます。
| 項目 | 変更前 | 変更後 |
|---|---|---|
| 使用中のサイト数 | 例:3/3 | 2/3 |
| 新しいサイトでの認証 | ❌ 不可 | ✅ 可能 |
3. ユーザーによる解除操作
操作手順(マイページ)
マイページ → ライセンス一覧
↓
対象ライセンスを選択
↓
「ドメイン管理」
↓
一覧から不要なドメインを選んで「解除」
解除後、画面上で次のように表示が変わります:
example.com → 解除済み
残り利用可能数:1
4. 再認証(新しいドメインで使用する場合)
解除後、ユーザーは新しいサイトにライセンスキーを入力するだけで再認証できます。
再認証時の流れ
新サイトから validate API 呼び出し
↓
ライセンスは active か?
↓
使用中サイト数 < activation_limit か?
↓
新ドメインをアクティベーションとして登録
↓
利用可能
APIレスポンス例(成功)
{
"status": "active",
"message": "ライセンス認証に成功しました。",
"remaining_slots": 1
}
5. 典型的なユーザーストーリー
ケース:テスト環境 → 本番環境
localhost (開発環境) でアクティベーション
↓
納品時に localhost をマイページから解除
↓
client-site.com で再認証 → 正常利用開始
ケース:クライアント切り替え
client-a.com → active
client-b.com → 新規
上限1サイトのライセンス
↓
client-a.com をマイページから解除
↓
client-b.com で認証 → OK
6. 解除が禁止されるケース
| ステータス | 理由 | 対応 |
|---|---|---|
| revoked | 権利自体が取り消されているため | 管理者が新しいライセンスを発行する |
| expired | 期限切れのため | 更新・再課金後に解除可能 |
7. UI 表現の推奨設計
| 状態 | ボタン表示 | 備考 |
|---|---|---|
| active ドメイン | 「解除する」ボタン | 確認ダイアログ推奨 |
| deactivated ドメイン | (表示のみ) | 誤操作防止のため非活性 |
| 上限に達したとき | 注意メッセージ + 解除を誘導 | 誘導が重要 |
推奨メッセージ:
利用中のサイト数が上限に達しています。
不要なサイトを解除することで、このサイトで利用できるようになります。
8. まとめ
• ドメイン解除はユーザーが自力で行える(サポート不要)
• 解除すると利用可能枠が回復し、新しいサイトで再認証可能
• 状態は wp_appcotton_license_activations で管理される
• revoked / expired の場合は解除できない
• エラーメッセージと誘導リンクが UX の決め手になる