prepare("SELECT affiliate_code FROM affiliates WHERE id = ?"); $stmt->execute([$delete_id]); $affiliate_code = $stmt->fetchColumn(); // Delete affiliate (cascade will delete attachments and signups) $stmt = $pdo->prepare("DELETE FROM affiliates WHERE id = ?"); $stmt->execute([$delete_id]); logActivity($_SESSION['admin_id'], 'delete_affiliate', "Deleted affiliate: $affiliate_code", 'affiliate', $delete_id); $success = 'Affiliate deleted successfully!'; } catch (Exception $e) { $error = 'An error occurred while deleting. Please try again.'; error_log("Delete affiliate error: " . $e->getMessage()); } } } } // Fetch all affiliates with per-affiliate not-verified count try { $pdo = getDBConnection(); $stmt = $pdo->query(" SELECT a.*, COALESCE(nv.not_verified_count, 0) AS not_verified_count FROM affiliates a LEFT JOIN ( SELECT affiliate_id, COUNT(*) AS not_verified_count FROM affiliate_signups WHERE signup_completed = 1 AND email_verified = 0 GROUP BY affiliate_id ) nv ON a.id = nv.affiliate_id ORDER BY a.created_at DESC "); $affiliates = $stmt->fetchAll(); } catch (Exception $e) { $affiliates = []; error_log("Fetch affiliates error: " . $e->getMessage()); } // Calculate statistics $total_affiliates = count($affiliates); $active_affiliates = count(array_filter($affiliates, fn($a) => $a['status'] === 'active')); $total_hits = array_sum(array_column($affiliates, 'total_signups')); $verified_signups = array_sum(array_column($affiliates, 'total_verified_signups')); $not_verified_count = array_sum(array_column($affiliates, 'not_verified_count')); $company_affiliates = count(array_filter($affiliates, fn($a) => $a['type'] === 'company')); $individual_affiliates = count(array_filter($affiliates, fn($a) => $a['type'] === 'individual')); $total_balance = array_sum(array_column($affiliates, 'commission_balance')); include 'includes/header.php'; ?>
Total Affiliates
Active Affiliates
Total Hits
Not Verified
Verified Signups
Total Balance Owed
Companies
Individuals
ID Affiliate Code Company/Name Type In-charge Location Contact Hits Not Verified Verified Balance Status Actions
No affiliates found. Click "Add New Affiliate" to create one.
#
-
👁