getMessage()); } // ─── Summary Stats (whole dataset, no pagination) ──────────────────────────── try { $summary = $panelPdo->query(" SELECT COUNT(DISTINCT mrc.referrer_user_id) AS total_referrers, COUNT(*) AS total_clicks, SUM(CASE WHEN mrc.signup_completed = 1 THEN 1 ELSE 0 END) AS total_signups, SUM(CASE WHEN mrc.email_verified = 1 THEN 1 ELSE 0 END) AS total_verified, SUM(CASE WHEN mrc.signup_reward_paid = 1 THEN 1 ELSE 0 END) AS rewards_paid, SUM(COALESCE(mrc.survey_commission_earned, 0)) AS total_commission FROM member_referral_clicks mrc ")->fetch(); } catch (Exception $e) { $summary = ['total_referrers'=>0,'total_clicks'=>0,'total_signups'=>0,'total_verified'=>0,'rewards_paid'=>0,'total_commission'=>0]; } // ─── Main Query ────────────────────────────────────────────────────────────── // We want one row per referrer, showing aggregated stats + most recent click $where = []; $params = []; if ($search !== '') { $where[] = "(ru.email LIKE ? OR ru.id = ? OR mrc.email LIKE ? OR mrc.ip_address LIKE ?)"; $params[] = "%$search%"; $params[] = (int)ltrim($search, 'RrR'); $params[] = "%$search%"; $params[] = "%$search%"; } if ($status_filter === 'signed_up') { $where[] = "mrc.signup_completed = 1"; } if ($status_filter === 'verified') { $where[] = "mrc.email_verified = 1"; } if ($status_filter === 'rewarded') { $where[] = "mrc.signup_reward_paid = 1"; } if ($status_filter === 'no_signup') { $where[] = "mrc.signup_completed = 0"; } if ($date_from !== '') { $where[] = "DATE(mrc.clicked_at) >= ?"; $params[] = $date_from; } if ($date_to !== '') { $where[] = "DATE(mrc.clicked_at) <= ?"; $params[] = $date_to; } $having = $min_referrals > 0 ? "HAVING total_clicks >= $min_referrals" : ''; $whereSql = $where ? 'WHERE ' . implode(' AND ', $where) : ''; // Aggregate per referrer $sql = " SELECT mrc.referrer_user_id, ru.email AS referrer_email, ru.status AS referrer_status, ru.created_at AS referrer_joined, COUNT(*) AS total_clicks, SUM(CASE WHEN mrc.signup_completed = 1 THEN 1 ELSE 0 END) AS total_signups, SUM(CASE WHEN mrc.email_verified = 1 THEN 1 ELSE 0 END) AS total_verified, SUM(CASE WHEN mrc.signup_reward_paid = 1 THEN 1 ELSE 0 END) AS rewards_paid, SUM(COALESCE(mrc.survey_commission_earned, 0)) AS survey_commission, MAX(mrc.clicked_at) AS last_activity FROM member_referral_clicks mrc LEFT JOIN users ru ON ru.id = mrc.referrer_user_id $whereSql GROUP BY mrc.referrer_user_id, ru.email, ru.status, ru.created_at $having ORDER BY last_activity DESC LIMIT $per_page OFFSET $offset "; // Count total referrers for pagination $countSql = " SELECT COUNT(*) FROM ( SELECT mrc.referrer_user_id FROM member_referral_clicks mrc LEFT JOIN users ru ON ru.id = mrc.referrer_user_id $whereSql GROUP BY mrc.referrer_user_id $having ) sub "; try { $stmt = $panelPdo->prepare($sql); $stmt->execute($params); $referrers = $stmt->fetchAll(); $stmtC = $panelPdo->prepare($countSql); $stmtC->execute($params); $total_rows = (int)$stmtC->fetchColumn(); $total_pages = max(1, ceil($total_rows / $per_page)); } catch (Exception $e) { $referrers = []; $total_rows = 0; $total_pages = 1; error_log("member-referrals error: " . $e->getMessage()); } // ─── Detail Modal: clicks for one referrer ─────────────────────────────────── $detail_rows = []; $detail_referrer = null; if (isset($_GET['detail']) && is_numeric($_GET['detail'])) { $did = (int)$_GET['detail']; try { $ds = $panelPdo->prepare(" SELECT mrc.*, ru.email AS referee_registered_email FROM member_referral_clicks mrc LEFT JOIN users ru ON ru.id = mrc.referee_user_id WHERE mrc.referrer_user_id = ? ORDER BY mrc.clicked_at DESC "); $ds->execute([$did]); $detail_rows = $ds->fetchAll(); $drs = $panelPdo->prepare("SELECT email FROM users WHERE id = ?"); $drs->execute([$did]); $detail_referrer = $drs->fetchColumn(); } catch (Exception $e) { error_log("member-referrals detail error: " . $e->getMessage()); } } function fmtId($id) { return 'RR' . str_pad((int)$id, 7, '0', STR_PAD_LEFT); } include 'includes/header.php'; ?>

Member Referral Activity

All member-to-member referral clicks, signups, verifications, and rewards

Back to Panel
Active Referrers
Members who shared
Total Clicks
Link visits
Signups
Registrations
Verified
Email confirmed
Rewards Paid
Referral bonuses
Survey Commission
Total earned
Reset
referrer found Page of
No referral activity found

Try adjusting your filters or check back later.

Referrer Clicks Signups Verified Rewards Paid Survey Comm. Status Last Activity
0 ? '₹' . number_format($r['survey_commission'], 0) : '—'; ?> View Clicks
Showing of