['subscription.discount.coupon']]); $subscription = $checkout_session->subscription; if ($subscription->status === 'active') { if (isset($subscription->discount) && $subscription->discount->coupon) { $coupon_code = $subscription->discount->coupon->name; if ($coupon_code) { $stmt = db()->prepare('UPDATE discounts SET times_used = times_used + 1 WHERE code = ?'); $stmt->execute([$coupon_code]); } } $client_id = $_SESSION['user_id']; $stripe_subscription_id = $subscription->id; $stripe_product_id = $subscription->items->data[0]->price->product; $status = $subscription->status; $start_date = date('Y-m-d H:i:s', $subscription->current_period_start); $end_date = date('Y-m-d H:i:s', $subscription->current_period_end); $pdo = db(); $stmt = $pdo->prepare("INSERT INTO client_subscriptions (client_id, stripe_subscription_id, stripe_product_id, status, start_date, end_date) VALUES (?, ?, ?, ?, ?, ?)"); $stmt->execute([$client_id, $stripe_subscription_id, $stripe_product_id, $status, $start_date, $end_date]); header('Location: dashboard.php?subscription=success'); exit; } else { header('Location: subscription-cancel.php?reason=payment_not_complete'); exit; } } catch (\Stripe\Exception\ApiErrorException $e) { // Handle error header('Location: subscription-cancel.php?reason=invalid_session'); exit; }