prepare("SELECT value FROM settings WHERE name = ?"); $stmt_shutdown->execute(['emergency_shutdown']); $shutdown_active = ($stmt_shutdown->fetchColumn() === 'true'); $is_guest = !isset($_SESSION['user_id']); $user_id = $_SESSION['user_id'] ?? null; $session_id = session_id(); $pdo = db(); $user = []; if (!$is_guest) { $userStmt = $pdo->prepare("SELECT name, email, address, phone FROM users WHERE id = ?"); $userStmt->execute([$user_id]); $user = $userStmt->fetch(PDO::FETCH_ASSOC); } // Fetch cart items if (!$is_guest) { $stmt = $pdo->prepare("SELECT c.id, mi.name, mi.price, c.quantity, r.name as restaurant_name, r.id as restaurant_id FROM cart c JOIN menu_items mi ON c.menu_item_id = mi.id JOIN restaurants r ON mi.restaurant_id = r.id WHERE c.user_id = :user_id"); $stmt->bindParam(':user_id', $user_id); } else { $stmt = $pdo->prepare("SELECT c.id, mi.name, mi.price, c.quantity, r.name as restaurant_name, r.id as restaurant_id FROM cart c JOIN menu_items mi ON c.menu_item_id = mi.id JOIN restaurants r ON mi.restaurant_id = r.id WHERE c.session_id = :session_id"); $stmt->bindParam(':session_id', $session_id); } $stmt->execute(); $cartItems = $stmt->fetchAll(PDO::FETCH_ASSOC); if (empty($cartItems)) { header("Location: cart.php"); exit(); } $subtotal = 0; foreach ($cartItems as $item) { $subtotal += $item['price'] * $item['quantity']; } $settingsStmt = $pdo->query("SELECT name, value FROM settings WHERE name IN ('delivery_fee', 'service_fee_percentage')"); $settings = $settingsStmt->fetchAll(PDO::FETCH_KEY_PAIR); $delivery_fee = $settings['delivery_fee'] ?? 0; $service_fee_percentage = $settings['service_fee_percentage'] ?? 0; $service_fee = ($subtotal * $service_fee_percentage) / 100; $discount_amount = $_SESSION['discount_amount'] ?? 0; $totalPrice = $subtotal + $delivery_fee + $service_fee - $discount_amount; $_SESSION['total_price'] = $totalPrice; include 'header.php'; ?>
Due to severe weather conditions, we have temporarily suspended all delivery services. The safety of our drivers and customers is our top priority.
We apologize for any inconvenience and will resume operations as soon as it is safe to do so.