terms of service. See our privacy policy.','ticketdrum'),esc_url(TICKETDRUM_URL.'/content/terms'),esc_url(TICKETDRUM_URL.'/content/privacy')));
?>
get_var($wpdb->prepare("SELECT COALESCE(SUM(total),0) FROM %i WHERE status='paid' AND added>DATE_SUB(NOW(), INTERVAL 30 DAY)",TICKETDRUM_PURCHASES_TABLE));
$orders_30d = (int)$wpdb->get_var($wpdb->prepare("SELECT COUNT(*) FROM %i WHERE status='paid' AND added>DATE_SUB(NOW(), INTERVAL 30 DAY)",TICKETDRUM_PURCHASES_TABLE));
$upcoming = (int)$wpdb->get_var($wpdb->prepare("SELECT COUNT(*) FROM %i WHERE status='active' AND end_datetime>=NOW()",TICKETDRUM_EVENTS_TABLE));
$waitlisted = (int)$wpdb->get_var($wpdb->prepare("SELECT COUNT(*) FROM %i WHERE notified=0",TICKETDRUM_WAITLIST_TABLE));
//Tickets sold in the last 30 days
$tickets_30d = 0;
$recent_paid = $wpdb->get_results($wpdb->prepare("SELECT ticket_data FROM %i WHERE status='paid' AND added>DATE_SUB(NOW(), INTERVAL 30 DAY)",TICKETDRUM_PURCHASES_TABLE),ARRAY_A);
foreach ($recent_paid as $rp)
{
$td = json_decode($rp['ticket_data'],true);
foreach (($td['tickets']??[]) as $t) $tickets_30d+= (int)$t['quantity'];
}
//Daily sales for the chart
$daily = $wpdb->get_results($wpdb->prepare("SELECT DATE(added) d, SUM(total) revenue, COUNT(*) orders FROM %i
WHERE status='paid' AND added>DATE_SUB(NOW(), INTERVAL 30 DAY) GROUP BY DATE(added)",TICKETDRUM_PURCHASES_TABLE),ARRAY_A);
$by_day = [];
foreach ($daily as $d) $by_day[$d['d']] = $d;
$max_rev = 0.01;
foreach ($by_day as $d) $max_rev = max($max_rev,(float)$d['revenue']);
$recent = $wpdb->get_results($wpdb->prepare("SELECT id,name,total,status,added FROM %i WHERE status IN ('paid','refunded') ORDER BY added DESC LIMIT 8",TICKETDRUM_PURCHASES_TABLE),ARRAY_A);
?>