52 lines
1.8 KiB
PHP
52 lines
1.8 KiB
PHP
<?php
|
|
session_start();
|
|
require_once 'db/config.php';
|
|
|
|
if (!isset($_GET['action'])) {
|
|
header('Location: index.php');
|
|
exit;
|
|
}
|
|
|
|
$action = $_GET['action'];
|
|
$user_id = $_SESSION['user_id'] ?? null;
|
|
$session_id = session_id();
|
|
$pdoconnection = db();
|
|
|
|
if ($action == 'add') {
|
|
if (!isset($_POST['menu_item_id']) || !isset($_POST['quantity'])) {
|
|
header('Location: cart.php');
|
|
exit;
|
|
}
|
|
|
|
$menu_item_id = $_POST['menu_item_id'];
|
|
$quantity = $_POST['quantity'];
|
|
|
|
// Check if item is already in cart
|
|
if ($user_id) {
|
|
$stmt = $pdoconnection->prepare("SELECT * FROM cart WHERE user_id = :user_id AND menu_item_id = :menu_item_id");
|
|
$stmt->execute([':user_id' => $user_id, ':menu_item_id' => $menu_item_id]);
|
|
} else {
|
|
$stmt = $pdoconnection->prepare("SELECT * FROM cart WHERE session_id = :session_id AND menu_item_id = :menu_item_id");
|
|
$stmt->execute([':session_id' => $session_id, ':menu_item_id' => $menu_item_id]);
|
|
}
|
|
$existing_item = $stmt->fetch();
|
|
|
|
if ($existing_item) {
|
|
// Update quantity
|
|
$new_quantity = $existing_item['quantity'] + $quantity;
|
|
$stmt = $pdoconnection->prepare("UPDATE cart SET quantity = :quantity WHERE id = :id");
|
|
$stmt->execute([':quantity' => $new_quantity, ':id' => $existing_item['id']]);
|
|
} else {
|
|
// Insert new item
|
|
$stmt = $pdoconnection->prepare("INSERT INTO cart (user_id, session_id, menu_item_id, quantity) VALUES (:user_id, :session_id, :menu_item_id, :quantity)");
|
|
$stmt->execute([
|
|
':user_id' => $user_id,
|
|
':session_id' => $user_id ? null : $session_id,
|
|
':menu_item_id' => $menu_item_id,
|
|
':quantity' => $quantity
|
|
]);
|
|
}
|
|
|
|
header('Location: cart.php');
|
|
exit;
|
|
} |