Devco1
Home
Console
Upload
New File
New Folder
Tools
Info
About
/
home
/
wifiyecu
/
www
/
Filename :
cart.php
back
Copy
<?php include 'includes/config.php'; ?> <?php include 'includes/header.php'; ?> <div class="row"> <div class="col-12"> <h1 class="mb-4">سلة التسوق</h1> </div> </div> <?php $session_id = session_id(); try { $stmt = $pdo->prepare(" SELECT c.*, p.name, p.price, p.stock_quantity, pi.image_url FROM cart c JOIN products p ON c.product_id = p.id LEFT JOIN product_images pi ON p.id = pi.product_id AND pi.is_main = 1 WHERE c.session_id = ? "); $stmt->execute([$session_id]); $cart_items = $stmt->fetchAll(); $total = 0; $has_out_of_stock = false; ?> <div class="row"> <div class="col-lg-8"> <div class="card"> <div class="card-body"> <?php if (empty($cart_items)): ?> <div class="text-center py-5"> <i class="fas fa-shopping-cart fa-3x text-muted mb-3"></i> <h4 class="text-muted">سلة التسوق فارغة</h4> <p class="text-muted mb-4">لم تقم بإضافة أي منتجات إلى سلة التسوق بعد</p> <a href="index.php" class="btn btn-primary">استمر في التسوق</a> </div> <?php else: ?> <?php foreach ($cart_items as $item): ?> <?php $item_total = $item['price'] * $item['quantity']; $total += $item_total; $is_out_of_stock = $item['stock_quantity'] < $item['quantity']; if ($is_out_of_stock) $has_out_of_stock = true; ?> <div class="cart-item row align-items-center border-bottom pb-3 mb-3" data-cart-id="<?php echo $item['id']; ?>"> <div class="col-md-2"> <img src="<?php echo $item['image_url'] ?: 'images/placeholder.jpg'; ?>" alt="<?php echo htmlspecialchars($item['name']); ?>" class="img-fluid rounded" style="height: 80px; object-fit: cover;"> </div> <div class="col-md-4"> <h5 class="mb-1"><?php echo htmlspecialchars($item['name']); ?></h5> <p class="text-muted mb-0">$<?php echo $item['price']; ?></p> <?php if ($is_out_of_stock): ?> <small class="text-danger"> <i class="fas fa-exclamation-triangle"></i> غير متوفر (المخزون: <?php echo $item['stock_quantity']; ?>) </small> <?php endif; ?> </div> <div class="col-md-3"> <div class="quantity-controls d-flex align-items-center"> <button class="btn btn-outline-secondary btn-sm decrease" <?php echo $item['quantity'] <= 1 ? 'disabled' : ''; ?>> <i class="fas fa-minus"></i> </button> <span class="mx-3 quantity"><?php echo $item['quantity']; ?></span> <button class="btn btn-outline-secondary btn-sm increase" <?php echo $item['quantity'] >= $item['stock_quantity'] ? 'disabled' : ''; ?>> <i class="fas fa-plus"></i> </button> </div> </div> <div class="col-md-2"> <span class="h6 item-total">$<?php echo number_format($item_total, 2); ?></span> </div> <div class="col-md-1"> <button class="btn btn-danger btn-sm remove-item" data-cart-id="<?php echo $item['id']; ?>"> <i class="fas fa-trash"></i> </button> </div> </div> <?php endforeach; ?> <?php endif; ?> </div> </div> </div> <div class="col-lg-4"> <div class="card"> <div class="card-header"> <h5 class="mb-0">ملخص الطلب</h5> </div> <div class="card-body"> <div class="d-flex justify-content-between mb-2"> <span>الإجمالي:</span> <span>$<?php echo number_format($total, 2); ?></span> </div> <div class="d-flex justify-content-between mb-2"> <span>الشحن:</span> <span>$0.00</span> </div> <hr> <div class="d-flex justify-content-between mb-3"> <strong>المجموع النهائي:</strong> <strong class="h5 text-primary">$<?php echo number_format($total, 2); ?></strong> </div> <?php if (!empty($cart_items)): ?> <?php if ($has_out_of_stock): ?> <div class="alert alert-warning"> <i class="fas fa-exclamation-triangle"></i> بعض المنتجات غير متوفرة بالكمية المطلوبة </div> <button class="btn btn-secondary w-100 btn-lg" disabled> <i class="fas fa-credit-card"></i> إتمام الشراء </button> <?php else: ?> <a href="checkout.php" class="btn btn-success w-100 btn-lg"> <i class="fas fa-credit-card"></i> إتمام الشراء </a> <?php endif; ?> <?php endif; ?> <a href="index.php" class="btn btn-outline-primary w-100 mt-2"> <i class="fas fa-shopping-bag"></i> متابعة التسوق </a> </div> </div> </div> </div> <?php } catch (PDOException $e) { echo '<div class="alert alert-danger">خطأ في تحميل سلة التسوق: ' . $e->getMessage() . '</div>'; } ?> <script> document.addEventListener('DOMContentLoaded', function() { // إدارة الكمية document.querySelectorAll('.increase').forEach(btn => { btn.addEventListener('click', function() { const cartId = this.closest('.cart-item').dataset.cartId; updateQuantity(cartId, 'increase'); }); }); document.querySelectorAll('.decrease').forEach(btn => { btn.addEventListener('click', function() { const cartId = this.closest('.cart-item').dataset.cartId; updateQuantity(cartId, 'decrease'); }); }); // حذف العنصر document.querySelectorAll('.remove-item').forEach(btn => { btn.addEventListener('click', function() { const cartId = this.dataset.cartId; if (confirm('هل تريد حذف هذا المنتج من السلة؟')) { removeFromCart(cartId); } }); }); async function updateQuantity(cartId, action) { try { const response = await fetch('ajax/update_cart_quantity.php', { method: 'POST', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify({ cart_id: cartId, action: action }) }); const result = await response.json(); if (result.success) { location.reload(); } else { alert(result.message); } } catch (error) { console.error('Error:', error); alert('حدث خطأ أثناء تحديث الكمية'); } } async function removeFromCart(cartId) { try { const response = await fetch('ajax/remove_from_cart.php', { method: 'POST', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify({ cart_id: cartId }) }); const result = await response.json(); if (result.success) { location.reload(); } else { alert(result.message); } } catch (error) { console.error('Error:', error); alert('حدث خطأ أثناء حذف المنتج'); } } }); </script> <?php include 'includes/footer.php'; ?>