From 83039ba36bb80ad71aaca3ff3dedcdaf2ea0a8d3 Mon Sep 17 00:00:00 2001 From: dinamiko Date: Thu, 19 Nov 2020 15:26:55 +0100 Subject: [PATCH] Check purchase units payments captures status is not declined before update order status --- .../src/Processor/class-orderprocessor.php | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/modules/ppcp-wc-gateway/src/Processor/class-orderprocessor.php b/modules/ppcp-wc-gateway/src/Processor/class-orderprocessor.php index 14cec7266..f718b0c08 100644 --- a/modules/ppcp-wc-gateway/src/Processor/class-orderprocessor.php +++ b/modules/ppcp-wc-gateway/src/Processor/class-orderprocessor.php @@ -168,10 +168,14 @@ class OrderProcessor { __( 'Awaiting payment.', 'woocommerce-paypal-payments' ) ); if ( $order->status()->is( OrderStatus::COMPLETED ) && $order->intent() === 'CAPTURE' ) { - $wc_order->update_status( - 'processing', - __( 'Payment received.', 'woocommerce-paypal-payments' ) - ); + + $purchaseUnitsPaymentsCapturesStatus = $order->purchase_units()[0]->payments()->captures()[0]->status() ?? ''; + if ( $purchaseUnitsPaymentsCapturesStatus && $purchaseUnitsPaymentsCapturesStatus !== 'DECLINED' ) { + $wc_order->update_status( + 'processing', + __( 'Payment received.', 'woocommerce-paypal-payments' ) + ); + } } if ( $this->capture_authorized_downloads( $order ) && $this->authorized_payments_processor->process( $wc_order ) ) {