36716-vm/subscribe-checkout.php
2025-12-07 05:00:42 +00:00

93 lines
3.2 KiB
PHP

<?php
require_once 'includes/header.php';
require_once 'db/config.php';
require_once 'stripe/config.php'; // for $subscriptions
if (!isset($_SESSION['user_id']) || $_SESSION['user_type'] !== 'client') {
header('Location: login.php');
exit;
}
if (!isset($_GET['plan_id'])) {
header('Location: subscription-plans.php?error=missing_plan');
exit;
}
$plan_id = $_GET['plan_id'];
global $subscriptions;
if (!isset($subscriptions[$plan_id])) {
header('Location: subscription-plans.php?error=invalid_plan');
exit;
}
$plan = $subscriptions[$plan_id];
?>
<div class="container mt-5">
<h2>Checkout</h2>
<div class="row">
<div class="col-md-6">
<div class="card">
<div class="card-header">
Subscription Details
</div>
<div class="card-body">
<h5 class="card-title"><?php echo htmlspecialchars($plan['name']); ?></h5>
<p class="card-text">$<?= number_format($plan['price'] / 100, 2) ?> per <?= htmlspecialchars($plan['interval']) ?></p>
</div>
</div>
</div>
<div class="col-md-6">
<div class="card">
<div class="card-header">
Payment
</div>
<div class="card-body">
<form id="checkout-form">
<div class="form-group">
<label for="coupon">Coupon Code</label>
<input type="text" class="form-control" id="coupon" name="coupon">
</div>
<button type="button" id="apply-coupon" class="btn btn-secondary mt-2">Apply Coupon</button>
<hr>
<p>Total: <span id="total-price">$<?php echo htmlspecialchars(number_format($plan['price'] / 100, 2)); ?></span></p>
<button type="submit" class="btn btn-primary">Pay with Stripe</button>
</form>
</div>
</div>
</div>
</div>
</div>
<script>
document.getElementById('apply-coupon').addEventListener('click', function() {
const couponCode = document.getElementById('coupon').value;
const planId = '<?php echo $plan_id; ?>';
fetch('api/validate_subscription_coupon.php', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({ coupon_code: couponCode, plan_id: planId })
})
.then(response => response.json())
.then(data => {
if (data.success) {
document.getElementById('total-price').innerText = '$' + data.discounted_price.toFixed(2);
} else {
alert(data.error);
}
});
});
document.getElementById('checkout-form').addEventListener('submit', function(e) {
e.preventDefault();
const couponCode = document.getElementById('coupon').value;
window.location.href = 'create-subscription-checkout-session.php?plan_id=<?php echo $plan_id; ?>&coupon=' + couponCode;
});
</script>
<?php require_once 'includes/footer.php'; ?>