prepare("SELECT id FROM restaurants WHERE user_id = ?"); $stmt->execute([$_SESSION['user_id']]); $restaurant = $stmt->fetch(); if (!$restaurant) { header('Location: ../index.php'); exit; } $restaurant_id = $restaurant['id']; // Get the menu item and verify it belongs to the correct restaurant $stmt = $pdo->prepare("SELECT * FROM menu_items WHERE id = ? AND restaurant_id = ?"); $stmt->execute([$menu_item_id, $restaurant_id]); $item = $stmt->fetch(); if (!$item) { // If the item doesn't exist or doesn't belong to this owner, redirect header('Location: menu.php'); exit; } if ($_SERVER['REQUEST_METHOD'] === 'POST') { $name = $_POST['name'] ?? ''; $description = $_POST['description'] ?? ''; $price = $_POST['price'] ?? ''; $promotion_id = $_POST['promotion_id'] ?? null; $image_url = $item['image_url']; // Keep old image by default if ($name && $price) { try { // Handle new image upload if (isset($_FILES['image']) && $_FILES['image']['error'] === UPLOAD_ERR_OK) { require_once '../includes/S3Service.php'; $tmp_path = $_FILES['image']['tmp_name']; $file_name = $_FILES['image']['name']; $extension = pathinfo($file_name, PATHINFO_EXTENSION); $key = "menu_items/{$restaurant_id}/" . uniqid() . "." . $extension; $new_image_url = S3Service::uploadFile($tmp_path, $key); if ($new_image_url) { $image_url = $new_image_url; // Set new image URL } else { throw new Exception("Failed to upload new image to S3."); } } $stmt = $pdo->prepare("UPDATE menu_items SET name = ?, description = ?, price = ?, promotion_id = ?, image_url = ? WHERE id = ? AND restaurant_id = ?"); $stmt->execute([$name, $description, $price, $promotion_id, $image_url, $menu_item_id, $restaurant_id]); header('Location: menu.php'); exit; } catch (Exception $e) { $error = "Error: " . $e->getMessage(); } } else { $error = "Name and price are required."; } } $stmt = $pdo->prepare("SELECT * FROM special_promotions"); $stmt->execute(); $promotions = $stmt->fetchAll(); ?>

Edit Menu Item

Current Image
Cancel