![]() 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/private_html/ |
<?php
session_start();
// Set JSON content type
header('Content-Type: application/json');
// Check if user is logged in
if (!isset($_SESSION['user_id'])) {
echo json_encode(['success' => false, 'error' => 'User not logged in']);
exit;
}
// Check if it's a POST request
if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
echo json_encode(['success' => false, 'error' => 'Invalid request method']);
exit;
}
try {
if (!isset($_SESSION['credit_cart'])) {
echo json_encode(['success' => true, 'message' => 'Cart is already empty']);
exit;
}
$original_count = count($_SESSION['credit_cart']);
$cleaned_cart = [];
$track_ids = [];
$packages = [];
// Process each item and merge duplicates
foreach ($_SESSION['credit_cart'] as $item) {
if ($item['type'] === 'track') {
$track_id = $item['track_id'];
if (isset($track_ids[$track_id])) {
// Merge with existing track
$cleaned_cart[$track_ids[$track_id]]['quantity'] += $item['quantity'];
} else {
// Add new track
$track_ids[$track_id] = count($cleaned_cart);
$cleaned_cart[] = $item;
}
} elseif ($item['type'] === 'credit') {
$package = $item['package'];
if (isset($packages[$package])) {
// Merge with existing credit package
$cleaned_cart[$packages[$package]]['quantity'] += $item['quantity'];
} else {
// Add new credit package
$packages[$package] = count($cleaned_cart);
$cleaned_cart[] = $item;
}
}
}
// Convert back to indexed array
$_SESSION['credit_cart'] = array_values($cleaned_cart);
$new_count = count($_SESSION['credit_cart']);
$removed_count = $original_count - $new_count;
// Log the action
error_log("Cart cleaned for user ID: " . $_SESSION['user_id'] . " - Removed " . $removed_count . " duplicate items at " . date('Y-m-d H:i:s'));
echo json_encode([
'success' => true,
'message' => 'Cart cleaned successfully',
'removed_duplicates' => $removed_count,
'original_count' => $original_count,
'new_count' => $new_count
]);
} catch (Exception $e) {
error_log("Error cleaning cart: " . $e->getMessage());
echo json_encode(['success' => false, 'error' => 'Failed to clean cart']);
}
?>