65 lines
2.2 KiB
PHP
65 lines
2.2 KiB
PHP
<?php
|
|
declare(strict_types=1);
|
|
require_once __DIR__ . '/includes/bootstrap.php';
|
|
require_once __DIR__ . '/includes/layout.php';
|
|
|
|
$orderNumber = '';
|
|
$email = '';
|
|
$order = null;
|
|
$error = '';
|
|
|
|
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
|
|
$orderNumber = trim((string) ($_POST['order_number'] ?? ''));
|
|
$email = trim((string) ($_POST['email'] ?? ''));
|
|
|
|
if ($orderNumber === '' || $email === '') {
|
|
$error = 'Both fields are required.';
|
|
} else {
|
|
$order = get_order_by_number($orderNumber);
|
|
if (!$order || strtolower((string) $order['customer_email']) !== strtolower($email)) {
|
|
$error = 'No matching order found.';
|
|
$order = null;
|
|
}
|
|
}
|
|
}
|
|
|
|
render_header('Track Order - E-SO9', 'track');
|
|
?>
|
|
<main class="container my-5">
|
|
<h1 class="h3 mb-3">Track your order</h1>
|
|
<div class="row g-4">
|
|
<div class="col-lg-6">
|
|
<div class="stat-card">
|
|
<form method="post" action="/track.php">
|
|
<div class="mb-3">
|
|
<label class="form-label">Order number</label>
|
|
<input type="text" name="order_number" class="form-control" value="<?= e($orderNumber) ?>" required />
|
|
</div>
|
|
<div class="mb-3">
|
|
<label class="form-label">Email</label>
|
|
<input type="email" name="email" class="form-control" value="<?= e($email) ?>" required />
|
|
</div>
|
|
<button class="btn btn-primary" type="submit">Check status</button>
|
|
</form>
|
|
<?php if ($error): ?>
|
|
<div class="alert alert-warning mt-3"><?= e($error) ?></div>
|
|
<?php endif; ?>
|
|
</div>
|
|
</div>
|
|
<div class="col-lg-6">
|
|
<?php if ($order): ?>
|
|
<div class="stat-card">
|
|
<div class="text-muted small">Status</div>
|
|
<div class="h4 mb-2"><?= e($order['status']) ?></div>
|
|
<div class="text-muted small">Order total</div>
|
|
<div class="fw-semibold mb-2"><?= e(format_price((float) $order['total_price'])) ?></div>
|
|
<a href="/order.php?order=<?= e($order['order_number']) ?>" class="btn btn-outline-secondary btn-sm">View full order</a>
|
|
</div>
|
|
<?php else: ?>
|
|
<div class="admin-note">Place a demo order to see tracking updates here.</div>
|
|
<?php endif; ?>
|
|
</div>
|
|
</div>
|
|
</main>
|
|
<?php render_footer(); ?>
|