// … dans votre fonction ypi_process_unprocessed($manual = true) …
// 1) Récupération du batch header ID passé par l’URL
$batch_header_id = isset($_GET['show_payout_details'])
? sanitize_text_field($_GET['show_payout_details'])
: '';
// 2) Si on est en run manuel, on tente le get_payout()
if ($manual && $batch_header_id) {
$logs[] = ['', 'debug', "Batch header ID (URL) : {$batch_header_id}"];
if (! method_exists($payout, 'get_payout')) {
$logs[] = ['', 'error', 'Méthode get_payout() introuvable'];
} else {
$details = $payout->get_payout( $batch_header_id );
$logs[] = ['', 'debug', 'Détails récupérés : ' . print_r($details, true)];
// 3) On extrait l’ID interne de la ligne
$internal_id = $details->ID ?? null;
if (! $internal_id) {
$logs[] = ['', 'error', "Impossible de lire details->ID pour header {$batch_header_id}"];
} else {
$logs[] = ['', 'debug', "Internal record ID : {$internal_id}"];
// 4) On déclenche enfin le payout
$resp = $payout->send_request( $internal_id );
$logs[] = ['', 'debug', 'Réponse send_request : ' . print_r($resp, true)];
if ($resp && ! is_wp_error($resp)) {
$logs[] = ['', 'success', "Payout lancé pour record {$internal_id}"];
update_post_meta( $internal_id, '_ywppp_payout_status', 'sent' );
} else {
$logs[] = ['', 'error', 'Échec send_request ou WP_Error'];
}
}
}
// On sort après le debug, sans faire la boucle normale
return $logs;
}
// … sinon, on continue avec le traitement “standard” pour tous les unprocessed …
Panier - La Librairie Antique