Add premium My Case MVP

This commit is contained in:
2026-05-23 10:17:34 +02:00
parent e0aeefc73e
commit 83fc71414f
33 changed files with 1275 additions and 148 deletions
+10 -1
View File
@@ -18,7 +18,7 @@ if ($userId <= 0 || $email === '') {
$input = dbnToolsJsonInput(2000);
$sku = (string)($input['sku'] ?? '');
$validSubscriptions = ['light', 'pro', 'pro_plus'];
$validSubscriptions = ['plus', 'pro'];
$validTopups = ['topup_s', 'topup_m', 'topup_l'];
if (!in_array($sku, array_merge($validSubscriptions, $validTopups), true)) {
@@ -55,9 +55,18 @@ try {
];
if ($isSub) {
FreeTier::ensureRow($userId);
$detail = FreeTier::balanceDetail($userId);
$params['subscription_data'] = [
'metadata' => ['user_id' => (string)$userId, 'tier' => $sku],
];
if ($sku === 'plus' && empty($detail['trial_started_at'])) {
$params['subscription_data']['trial_period_days'] = 14;
$params['subscription_data']['trial_settings'] = [
'end_behavior' => ['missing_payment_method' => 'cancel'],
];
}
$params['payment_method_collection'] = 'always';
} else {
$params['payment_intent_data'] = [
'metadata' => ['user_id' => (string)$userId, 'sku' => $sku, 'credits' => (string)StripeClient::topupCredits($sku)],