diff --git a/api/donorbox-proxy.php b/api/donorbox-proxy.php index 6ec4ba5..3dc7280 100644 --- a/api/donorbox-proxy.php +++ b/api/donorbox-proxy.php @@ -129,12 +129,12 @@ if ($campaign === null) { } // Compter les donateurs réguliers actifs de la campagne ciblée uniquement -$campaign_id = $campaign['id'] ?? null; +// Filtre PHP sur le slug car le paramètre campaign_id de l'API n'est pas fiable $recurring_count = 0; $plans_page = 1; +$first_plan_sample = null; do { - $plans_url = 'https://donorbox.org/api/v1/plans?per_page=100&page=' . $plans_page - . ($campaign_id ? '&campaign_id=' . urlencode($campaign_id) : ''); + $plans_url = 'https://donorbox.org/api/v1/plans?per_page=100&page=' . $plans_page; $ch_plans = curl_init(); curl_setopt_array($ch_plans, [ @@ -159,6 +159,14 @@ do { if (!is_array($plans)) break; foreach ($plans as $plan) { + if ($first_plan_sample === null) { + $first_plan_sample = $plan; + } + // Filtrer sur le slug de la campagne cible + $plan_slug = $plan['campaign']['slug'] ?? $plan['campaign_slug'] ?? null; + if ($plan_slug !== CAMPAIGN_SLUG) { + continue; + } if (isset($plan['status']) && $plan['status'] === 'active') { $recurring_count++; } @@ -179,7 +187,8 @@ $filteredData = [ 'recurring_donors_count' => $recurring_count, 'campaign_name' => $campaign['name'] ?? 'Unknown', 'updated_at' => date('c'), - 'plans_detail' => $plans_detail ?? [] + 'plans_detail' => $plans_detail ?? [], + '_debug_plan_sample' => $first_plan_sample ]; $jsonResponse = json_encode($filteredData, JSON_PRETTY_PRINT);