Compare commits

...

2 commits

Author SHA1 Message Date
isUnknown
aa6133587a Fix jauge : filtrer les plans par campaign.id côté PHP
All checks were successful
Deploy / Deploy to Production (push) Successful in 9s
L'API Donorbox ne supporte pas de filtre campaign_id côté serveur,
et les plans n'exposent pas de slug. Filtre PHP sur plan['campaign']['id']
comparé à l'ID de la campagne récupérée.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-28 18:31:17 +02:00
isUnknown
d62a8c62cf Fix filtre campagne : filtrage PHP sur slug + debug structure API plans
Le paramètre campaign_id dans l'URL ne filtre pas côté Donorbox.
Filtrage PHP sur plan['campaign']['slug'] à la place.
Ajout _debug_plan_sample temporaire pour vérifier la structure réelle.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-28 18:28:17 +02:00

View file

@ -129,12 +129,12 @@ if ($campaign === null) {
}
// Compter les donateurs réguliers actifs de la campagne ciblée uniquement
// Filtre PHP sur campaign.id (l'API plans ne supporte pas de filtre côté serveur)
$campaign_id = $campaign['id'] ?? null;
$recurring_count = 0;
$plans_page = 1;
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,10 @@ do {
if (!is_array($plans)) break;
foreach ($plans as $plan) {
// Filtrer sur l'ID de la campagne cible
if (($plan['campaign']['id'] ?? null) !== $campaign_id) {
continue;
}
if (isset($plan['status']) && $plan['status'] === 'active') {
$recurring_count++;
}