";
return;
}
// Handle bulk actions
if (isset($_POST['bulk_action']) && isset($_POST['selected_orders'])) {
$action = $_POST['bulk_action'];
$selected = $_POST['selected_orders'];
foreach ((array)$selected as $order_id) {
$order_id = $db->realEscapeSingle($order_id);
switch ($action) {
case 'provision':
// Redirect to provision page for each order
header("Location: home.php?m=billing&p=provision_servers&order_id=".$order_id);
exit;
break;
case 'suspend':
$db->query("UPDATE OGP_DB_PREFIXbilling_orders SET status='suspended' WHERE order_id=".$order_id);
break;
case 'activate':
$db->query("UPDATE OGP_DB_PREFIXbilling_orders SET status='paid' WHERE order_id=".$order_id);
break;
case 'delete':
$db->query("UPDATE OGP_DB_PREFIXbilling_orders SET status='deleted' WHERE order_id=".$order_id);
break;
}
}
echo "
Bulk action completed for ".count((array)$selected)." order(s).
";
// Filter form
echo "";
// Build query
$query = "SELECT o.*, s.service_name, u.users_login, u.users_email
FROM OGP_DB_PREFIXbilling_orders o
LEFT JOIN OGP_DB_PREFIXbilling_services s ON o.service_id = s.service_id
LEFT JOIN OGP_DB_PREFIXusers u ON o.user_id = u.user_id
WHERE 1=1";
if ($status_filter != 'all') {
$query .= " AND o.status = '".$db->realEscapeSingle($status_filter)."'";
}
if (!empty($search)) {
$search_escaped = $db->realEscapeSingle($search);
$query .= " AND (o.order_id LIKE '%".$search_escaped."%'
OR o.home_name LIKE '%".$search_escaped."%'
OR u.users_login LIKE '%".$search_escaped."%'
OR u.users_email LIKE '%".$search_escaped."%')";
}
$query .= " ORDER BY o.order_date DESC";
$orders = $db->resultQuery($query);
if (empty($orders)) {
echo "
No orders found matching your filters.
";
return;
}
echo "";
// JavaScript for checkbox toggle
echo "";
// Summary stats
$stats = $db->resultQuery("SELECT status, COUNT(*) as count, SUM(price) as total
FROM OGP_DB_PREFIXbilling_orders
GROUP BY status");
echo "