false, 'message' => 'Invalid request']; if ($_SERVER['REQUEST_METHOD'] === 'POST') { try { // Read JSON from the request body $json_data = file_get_contents('php://input'); $data = json_decode($json_data, true); $tracking_id = $data['tracking_id'] ?? ''; if (empty($tracking_id)) { throw new Exception('کد رهگیری سفارش الزامی است.'); } $db = db(); $stmt = $db->prepare( "SELECT o.*, o.billing_name AS full_name FROM orders o WHERE o.tracking_id = :tracking_id" ); $stmt->execute([':tracking_id' => $tracking_id]); $order = $stmt->fetch(PDO::FETCH_ASSOC); if ($order) { $items_json = $order['items_json']; $items = json_decode($items_json, true); $products = []; if (is_array($items)) { $product_stmt = $db->prepare("SELECT name, price, image_url FROM products WHERE id = :product_id"); foreach ($items as $item) { $product_stmt->execute([':product_id' => $item['id']]); $product_details = $product_stmt->fetch(PDO::FETCH_ASSOC); if ($product_details) { $products[] = [ 'name' => $product_details['name'], 'price' => $product_details['price'], 'image_url' => $product_details['image_url'], 'quantity' => $item['quantity'], 'color' => $item['color'] ?? null, ]; } } } // Format data for response $order['created_at_jalali'] = jdate('Y/m/d H:i', strtotime($order['created_at'])); $order['status_jalali'] = get_persian_status($order['status']); $response['success'] = true; $response['message'] = 'سفارش یافت شد.'; $response['order'] = $order; $response['products'] = $products; } else { $response['message'] = 'سفارشی با این مشخصات یافت نشد.'; } } catch (PDOException $e) { error_log("Order tracking PDO error: " . $e->getMessage()); $response['message'] = 'خطا در پایگاه داده رخ داد: ' . $e->getMessage(); } catch (Exception $e) { error_log("Order tracking general error: " . $e->getMessage()); $response['message'] = $e->getMessage(); // Show the specific error message for now } echo json_encode($response); } ?>