[mhz_referral_dashboard]
prefix . ‘mhz_referrals’;
$click_table = $wpdb->prefix . ‘mhz_referral_clicks’;
// Collect tokens owned by user
$tokens = $wpdb->get_col($wpdb->prepare(“SELECT token FROM {$ref_table} WHERE owner_user_id = %d”, $user_id));
if (empty($tokens)) wp_send_json([‘labels’=>[], ‘data’=>[]]);
$in = “‘” . implode(“‘,'”, array_map(‘esc_sql’, $tokens)) . “‘”;
$results = $wpdb->get_results(”
SELECT DATE(created_at) AS d, COUNT(*) AS c
FROM {$click_table}
WHERE referral_token IN ($in)
AND created_at >= DATE_SUB(UTC_TIMESTAMP(), INTERVAL 7 DAY)
GROUP BY DATE(created_at)
ORDER BY DATE(created_at)
“);
$labels = [];
$data = [];
$map = [];
foreach ($results as $r) $map[$r->d] = intval($r->c);
$period = new DatePeriod(new DateTime(‘7 days ago’), new DateInterval(‘P1D’), new DateTime(‘+1 day’));
foreach ($period as $d) {
$key = $d->format(‘Y-m-d’);
$labels[] = $key;
$data[] = $map[$key] ?? 0;
}
wp_send_json([‘labels’=>$labels, ‘data’=>$data]);
});
?>
