ライセンスには「現在利用可能かどうか」を示す ステータス が設定されています。
このステータスによって、ユーザーがアプリ / プラグインを 正しく利用できるかどうか が決まります。
AppCotton では、ライセンスの状態は次の 3 種類が中心となります:
| ステータス | 説明 | ユーザー側の挙動 | 認証結果 |
|---|---|---|---|
| active | 利用中(有効) | 通常の利用が可能 | ✅ 認証OK |
| expired | 有効期限切れ | アップグレードまたは再購入を求める | ❌ 認証拒否 |
| revoked | 取り消し(管理者操作) | 利用不可、サポート対象外 | ❌ 認証拒否 |
有効状態に戻すときは、管理画面からステータスを変更できます。
active(有効)
現在利用中で、認証が許可されている状態
- Stripe決済が正常
- サブスク中断や返金が行われていない
- 期限(expires_at)が設定されている場合 → まだ切れていない
典型例
- 買い切り版を購入したユーザー
- 月額/年額サブスクが継続中のユーザー
認証挙動
→ プレミアム機能が利用可能
expired(期限切れ)
期限切れのためプレミアム機能が停止した状態
- 主に サブスク型のプランで生じる
expires_atが現在時刻より前の場合、自動的に expired になる
典型例
- 月額サブスクのカードが更新できなかった
- 年額契約が終了したが自動更新されていない
認証挙動
→ プレミアム機能を停止
→ マイページで「更新する」を案内
再有効化方法
- ユーザーがプランを 再購入 / 更新 する
- Stripe の決済再試行が成功する
revoked(取り消し)
管理者が手動で使用権を無効化した状態
この状態は 不正利用 や 返金処理後の適用 など、
明確な理由を伴うときに使用します。
管理者が revoked を選ぶ理由例
| ケース | 理由 |
|---|---|
| 不正配布・共有が発覚 | 利用を完全に停止する必要がある |
| 返金処理を行った後 | 継続利用を防ぐ必要がある |
| 法人契約の権利変更 | 別アカウントに再発行するため |
認証挙動
→ 完全に利用不可(ドメイン解除操作もできない)
ステータス変更の流れ(管理者操作)
- WordPress 管理画面 → AppCotton → ライセンス
- 対象ライセンスをクリック
- 「状態」項目を選択:
activeexpiredrevoked
- 「保存」
expired → active は、再課金が完了した後に行います。
ステータスの自動更新(サブスク時)
| イベント | 自動処理 |
|---|---|
| Stripe Webhook: invoice.payment_succeeded | → active 維持/回復 |
| Stripe Webhook: invoice.payment_failed | → 期限到達時に expired へ |
| Stripe Webhook: customer.subscription.deleted | → 即時 expired |
サイト側(プラグイン / SaaS)での分岐例
$status = appcotton_get_license_status( $license_key );
if ( $status === 'active' ) {
enable_premium_features();
} else {
show_upgrade_notice();
}
まとめ
active → 正常利用できるライセンス
expired → サブスク切れ・期限切れ(更新で復帰)
revoked → 管理者により取り消し(再利用不可)
- expired はユーザー起因
- revoked は管理者起因
- 状態は管理画面・Webhook・認証APIで連動