upd checkout

This commit is contained in:
2025-04-14 11:25:26 +02:00
parent 00659ea805
commit 279bdd615e
5 changed files with 142 additions and 57 deletions
+80 -9
View File
@@ -4,9 +4,16 @@
$dbHandler = DBHandlerSelect::getInstance();
$pdo = $dbHandler->getConnection();
// Recupera lo school_id dalla sessione
// Recupera lo school_id e user_id dalla sessione
$school_id = session('school_id');
// Controlla se l'utente è loggato
if (empty($iduserlogin)) {
header('Location: login.php?error=not_logged_in');
exit;
}
$school = null;
// Costruisci manualmente l'URL assoluto per il logo di default
$base_url = rtrim(env('APP_URL'), '/') . '/public/userarea/';
@@ -26,6 +33,21 @@ $stmt->execute([$iduserlogin]);
$user = $stmt->fetch();
// Dopo aver recuperato i dati dell'utente
$avatar = !empty($user['avatar']) ? '../upload/users/' . $user['avatar'] : '../assets/images/default-avatar.png';
// Query per recuperare gli ordini dell'utente per la scuola corrente
$stmt = $pdo->prepare("
SELECT o.order_number, o.created_at, o.price, o.total_entries, o.available_entries, o.available_recoveries, o.expiration_date, o.activation_date,
p.name AS product_name, pv.name AS variation_name, c.name AS class_name, ct.level, ct.day_of_week
FROM orders o
JOIN products p ON o.product_id = p.id
JOIN product_variations pv ON o.variation_id = pv.id
LEFT JOIN class_types ct ON o.class_type_id = ct.id
LEFT JOIN classes c ON ct.class_id = c.id
WHERE o.user_id = ? AND o.school_id = ?
ORDER BY o.created_at DESC
");
$stmt->execute([$iduserlogin, $school_id]);
$orders = $stmt->fetchAll(PDO::FETCH_ASSOC);
?>
<!doctype html>
<html lang="en">
@@ -71,7 +93,8 @@ $avatar = !empty($user['avatar']) ? '../upload/users/' . $user['avatar'] : '../a
/* Colore più scuro al passaggio del mouse */
}
h5 {
h5,
h6 {
font-family: 'Poppins', sans-serif;
/* Font moderno e morbido, se disponibile */
color: #333;
@@ -89,14 +112,16 @@ $avatar = !empty($user['avatar']) ? '../upload/users/' . $user['avatar'] : '../a
/* Spazio tra gli elementi */
}
.lesson-card {
.lesson-card,
.order-card {
background-color: #ffffff;
border-left: 4px solid #c8e6c9;
/* Verde per le lezioni programmate */
/* Verde per le lezioni programmate e ordini */
transition: transform 0.2s ease;
}
.lesson-card:hover {
.lesson-card:hover,
.order-card:hover {
transform: translateY(-3px);
}
@@ -124,12 +149,19 @@ $avatar = !empty($user['avatar']) ? '../upload/users/' . $user['avatar'] : '../a
border-radius: 15px;
}
.lesson-details p {
.lesson-details p,
.order-details p {
margin-bottom: 0.2rem;
/* Spazio ridotto tra le righe */
font-size: 0.85rem;
/* Testo più piccolo per adattarsi meglio */
}
.order-details .price {
font-weight: bold;
color: #28a745;
/* Verde per il prezzo */
}
</style>
</head>
@@ -169,7 +201,6 @@ $avatar = !empty($user['avatar']) ? '../upload/users/' . $user['avatar'] : '../a
</div>
<div class="card-body">
<div class="d-flex flex-column align-items-center text-center">
<!-- Saluto e Nome -->
<h5 class="mb-3">Ciao, <?php echo htmlspecialchars($user['first_name']); ?>!</h5>
</div>
@@ -265,6 +296,48 @@ $avatar = !empty($user['avatar']) ? '../upload/users/' . $user['avatar'] : '../a
</div>
</div>
<!-- Nuova Sezione: Riepilogo Ordini -->
<div class="card card-pastel radius-10 mt-4">
<div class="card-header">
<div class="d-flex align-items-center">
<div>
<h6 class="mb-0">I tuoi Ordini</h6>
</div>
</div>
</div>
<div class="card-body">
<?php if (empty($orders)): ?>
<p class="text-center text-muted">Non hai ancora effettuato ordini per questa scuola.</p>
<?php else: ?>
<div class="row">
<?php foreach ($orders as $order): ?>
<div class="col-12 col-md-6 mb-3">
<div class="card order-card radius-10">
<div class="card-body">
<div class="order-details">
<h6 class="mb-1">Ordine #<?php echo htmlspecialchars($order['order_number']); ?></h6>
<p class="text-muted">Data: <?php echo date('d/m/Y H:i', strtotime($order['created_at'])); ?></p>
<p><strong>Prodotto:</strong> <?php echo htmlspecialchars($order['product_name']); ?></p>
<p><strong>Variazione:</strong> <?php echo htmlspecialchars($order['variation_name']); ?></p>
<?php if (!empty($order['class_name'])): ?>
<p><strong>Classe:</strong> <?php echo htmlspecialchars($order['class_name'] . ' - ' . $order['level'] . ' (' . $order['day_of_week'] . ')'); ?></p>
<?php endif; ?>
<p><strong>Entrate Totali:</strong> <?php echo $order['total_entries']; ?></p>
<p><strong>Recuperi Disponibili:</strong> <?php echo $order['available_recoveries']; ?></p>
<?php if (!empty($order['expiration_date'])): ?>
<p><strong>Valido fino al:</strong> <?php echo date('d/m/Y', strtotime($order['expiration_date'])); ?></p>
<?php endif; ?>
<p class="price"><strong>Prezzo:</strong> <?php echo number_format($order['price'], 2); ?></p>
</div>
</div>
</div>
</div>
<?php endforeach; ?>
</div>
<?php endif; ?>
</div>
</div>
</div>
</div>
<!--end page wrapper -->
@@ -278,13 +351,11 @@ $avatar = !empty($user['avatar']) ? '../upload/users/' . $user['avatar'] : '../a
</div>
<!--end wrapper-->
<!-- search modal -->
<?php //include('include/searchmodal.php');
?>
<!-- end search modal -->
<!--start switcher-->
<?php //include('include/themeswitcher.php');
?>