// ... existing code ... $error_message = ""; // Data Arrays $users = []; $customers = []; $bookings = []; $status_data = []; $trend_data = []; // Analytics Counts $total_users = 0; $total_customers = 0; $total_bookings = 0; $approved_bookings = 0; $pending_bookings = 0; $past_approved = 0; $upcoming_approved = 0; try { $conn = new PDO("mysql:host=" . $host . ";dbname=" . $db_name, $username, $password); $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // Fetch Data (Limited to 100 for performance on single page) $users = $conn->query("SELECT ID, user_login, user_email, user_registered FROM wp_users ORDER BY ID DESC LIMIT 100")->fetchAll(PDO::FETCH_ASSOC); $customers = $conn->query("SELECT * FROM wp_latepoint_customers ORDER BY id DESC LIMIT 100")->fetchAll(PDO::FETCH_ASSOC); $bookings = $conn->query("SELECT * FROM wp_latepoint_bookings ORDER BY id DESC LIMIT 100")->fetchAll(PDO::FETCH_ASSOC); // Attach Booking History to Customers Data foreach ($customers as &$customer) { // Find bookings matching the customer_id $customer_bookings = array_filter($bookings, function($booking) use ($customer) { return $booking['customer_id'] == $customer['id']; }); // Store as JSON for the frontend $customer['booking_history'] = json_encode(array_values($customer_bookings)); } unset($customer); // Break the reference // Fetch Counts $total_users = $conn->query("SELECT COUNT(*) FROM wp_users")->fetchColumn(); $total_customers = $conn->query("SELECT COUNT(*) FROM wp_latepoint_customers")->fetchColumn(); $total_bookings = $conn->query("SELECT COUNT(*) FROM wp_latepoint_bookings")->fetchColumn(); // Advanced Analytics Counts $approved_bookings = $conn->query("SELECT COUNT(*) FROM wp_latepoint_bookings WHERE status = 'approved'")->fetchColumn(); $pending_bookings = $conn->query("SELECT COUNT(*) FROM wp_latepoint_bookings WHERE status = 'pending'")->fetchColumn(); // Past vs Upcoming Approved (Comparing start_date to today) $today = date('Y-m-d'); $past_approved = $conn->query("SELECT COUNT(*) FROM wp_latepoint_bookings WHERE status = 'approved' AND start_date < '$today'")->fetchColumn(); $upcoming_approved = $conn->query("SELECT COUNT(*) FROM wp_latepoint_bookings WHERE status = 'approved' AND start_date >= '$today'")->fetchColumn(); // Analytics Data (Charts) $status_data = $conn->query("SELECT COALESCE(status, 'unknown') as status, COUNT(*) as count FROM wp_latepoint_bookings GROUP BY status")->fetchAll(PDO::FETCH_ASSOC); $trend_results = $conn->query("SELECT start_date, COUNT(*) as count FROM wp_latepoint_bookings WHERE start_date IS NOT NULL GROUP BY start_date ORDER BY start_date DESC LIMIT 14")->fetchAll(PDO::FETCH_ASSOC); // ... existing code ...
Total Patients
0
Total Bookings
0
Pending Approvals
0
Total Approved
0
Past Approved
0
Appointments before today
Upcoming Approved
0
Appointments today and future
| Actions | // ... existing code ... |
|---|
| Actions | |||
|---|---|---|---|
| #${booking.id || '-'} | ${booking.start_date || '-'} | ${booking.start_time ? booking.start_time.substring(0,5) : '-'} | ${booking.status || 'Unknown'} |