Skip to content

Commit 73cdb1b

Browse files
layoutdclaude
andcommitted
Improve refund error handling and logging
- Add detailed logging when orders cannot be refunded due to empty line items - Consolidate refund creation error logs into single formatted message - Add error logging for invalid order instance check These improvements will help diagnose why some completed orders aren't receiving refunds when --refund-ratio=1.0 is specified. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
1 parent f69d126 commit 73cdb1b

File tree

1 file changed

+11
-2
lines changed

1 file changed

+11
-2
lines changed

includes/Generator/Order.php

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -374,6 +374,7 @@ protected static function get_or_create_coupon() {
374374
*/
375375
protected static function create_refund( $order, $force_partial = false ) {
376376
if ( ! $order instanceof \WC_Order ) {
377+
error_log( "Error: Order is not an instance of \WC_Order: " . print_r( $order, true ) );
377378
return false;
378379
}
379380

@@ -493,8 +494,9 @@ protected static function create_refund( $order, $force_partial = false ) {
493494
}
494495
}
495496

496-
// If no line items to refund, return false
497+
// Ensure we have items to refund - if not, log and return false
497498
if ( empty( $line_items ) ) {
499+
error_log( sprintf( 'Refund skipped for order %d: No line items to refund. Order has %d items.', $order->get_id(), count( $order->get_items( array( 'line_item', 'fee' ) ) ) ) );
498500
return false;
499501
}
500502

@@ -541,8 +543,15 @@ protected static function create_refund( $order, $force_partial = false ) {
541543
'line_items' => $line_items,
542544
)
543545
);
544-
545546
if ( is_wp_error( $refund ) ) {
547+
error_log( sprintf(
548+
"Refund creation failed for order %d:\nError: %s\nAmount: %s\nReason: %s\nLine Items: %s",
549+
$order->get_id(),
550+
$refund->get_error_message(),
551+
$refund_amount,
552+
$reason,
553+
print_r( $line_items, true )
554+
) );
546555
return false;
547556
}
548557

0 commit comments

Comments
 (0)