93 lines
3.2 KiB
PHP
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'; ?>
|