![]() Server : Apache/2 System : Linux server-15-235-50-60 5.15.0-164-generic #174-Ubuntu SMP Fri Nov 14 20:25:16 UTC 2025 x86_64 User : gositeme ( 1004) PHP Version : 8.2.29 Disable Function : exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname Directory : /home/gositeme/domains/soundstudiopro.com/public_html/ |
<?php
session_start();
// Set JSON content type
header('Content-Type: application/json');
// Check if it's a POST request
if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
echo json_encode(['success' => false, 'error' => 'Invalid request method']);
exit;
}
$data = json_decode(file_get_contents('php://input'), true);
if (!isset($data['type']) || (!isset($data['identifier']) && !isset($data['event_id']))) {
echo json_encode(['success' => false, 'error' => 'Missing required parameters']);
exit;
}
try {
$type = $data['type'] ?? null;
$identifier = $data['identifier'] ?? $data['event_id'] ?? null;
if (!$type || !$identifier) {
echo json_encode(['success' => false, 'error' => 'Missing type or identifier']);
exit;
}
$removed = false;
$itemName = '';
// Handle ticket cart
if ($type === 'ticket') {
if (!isset($_SESSION['ticket_cart']) || empty($_SESSION['ticket_cart'])) {
echo json_encode(['success' => false, 'error' => 'Ticket cart is empty']);
exit;
}
// Find and remove ticket by event_id
foreach ($_SESSION['ticket_cart'] as $index => $item) {
if (isset($item['event_id']) && $item['event_id'] == $identifier) {
$itemName = $item['event_title'] ?? 'Event Ticket';
array_splice($_SESSION['ticket_cart'], $index, 1);
$_SESSION['ticket_cart'] = array_values($_SESSION['ticket_cart']); // Reindex
$removed = true;
break;
}
}
}
// Handle credit cart (existing logic)
else {
if (!isset($_SESSION['credit_cart'])) {
echo json_encode(['success' => false, 'error' => 'Cart is empty']);
exit;
}
$index = isset($data['index']) ? (int)$data['index'] : null;
// If index provided, use it
if ($index !== null) {
if ($index < 0 || $index >= count($_SESSION['credit_cart'])) {
echo json_encode(['success' => false, 'error' => 'Invalid item index']);
exit;
}
$item = $_SESSION['credit_cart'][$index];
// Verify the item matches
if ($item['type'] !== $type) {
echo json_encode(['success' => false, 'error' => 'Item type mismatch']);
exit;
}
if ($type === 'track' && $item['track_id'] != $identifier) {
echo json_encode(['success' => false, 'error' => 'Track ID mismatch']);
exit;
}
if ($type === 'credit' && $item['package'] !== $identifier) {
echo json_encode(['success' => false, 'error' => 'Package mismatch']);
exit;
}
$itemName = $type === 'track' ? $item['title'] : $item['package'] . ' Package';
array_splice($_SESSION['credit_cart'], $index, 1);
$removed = true;
} else {
// Find by identifier
foreach ($_SESSION['credit_cart'] as $idx => $item) {
$matches = false;
if ($type === 'track' && isset($item['track_id']) && $item['track_id'] == $identifier) {
$matches = true;
} elseif ($type === 'credit' && isset($item['package']) && $item['package'] === $identifier) {
$matches = true;
}
if ($matches) {
$itemName = $type === 'track' ? $item['title'] : $item['package'] . ' Package';
array_splice($_SESSION['credit_cart'], $idx, 1);
$_SESSION['credit_cart'] = array_values($_SESSION['credit_cart']); // Reindex
$removed = true;
break;
}
}
}
}
if (!$removed) {
echo json_encode(['success' => false, 'error' => 'Item not found in cart']);
exit;
}
// Log the action
$logUser = $_SESSION['user_id'] ?? 'guest';
error_log("Cart item removed for user ID: {$logUser} - {$itemName} at " . date('Y-m-d H:i:s'));
echo json_encode([
'success' => true,
'message' => 'Item removed successfully',
'removed_item' => $itemName
]);
} catch (Exception $e) {
error_log("Error removing cart item: " . $e->getMessage());
echo json_encode(['success' => false, 'error' => 'Failed to remove item']);
}
?>