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>
This commit is contained in:
parent
8a39475338
commit
d62a8c62cf
1 changed files with 13 additions and 4 deletions
|
|
@ -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);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue