From 3fb6a6dc006636e4b3c432e87f1157c820cc75fb Mon Sep 17 00:00:00 2001 From: Samir Merchant Date: Wed, 25 May 2022 08:32:11 -0400 Subject: [PATCH] Fix fatal error by checking for valid order before processing webhook (#4287) * check for valid order before processing payment intent succeeded webhook * Early return rather than throw exception. p1653480117582769/1653399879.923419-slack-CGGCLBN58 Co-authored-by: Dat Hoang --- changelog/fix-4286-fix-webhook-service-fatal-error | 4 ++++ includes/class-wc-payments-webhook-processing-service.php | 3 +++ 2 files changed, 7 insertions(+) create mode 100644 changelog/fix-4286-fix-webhook-service-fatal-error diff --git a/changelog/fix-4286-fix-webhook-service-fatal-error b/changelog/fix-4286-fix-webhook-service-fatal-error new file mode 100644 index 00000000000..0d3d0fd339d --- /dev/null +++ b/changelog/fix-4286-fix-webhook-service-fatal-error @@ -0,0 +1,4 @@ +Significance: patch +Type: fix + +Fixes fatal error on payment intent succeeded webhook. diff --git a/includes/class-wc-payments-webhook-processing-service.php b/includes/class-wc-payments-webhook-processing-service.php index 1b8bd189e64..c7ab35fdfba 100644 --- a/includes/class-wc-payments-webhook-processing-service.php +++ b/includes/class-wc-payments-webhook-processing-service.php @@ -361,6 +361,9 @@ private function process_webhook_payment_intent_succeeded( $event_body ) { $charges_data = $this->read_webhook_property( $event_charges, 'data' ); $charge_id = $this->read_webhook_property( $charges_data[0], 'id' ); + if ( ! $order ) { + return; + } // update _charge_id meta if it doesn't exist - happens when maybe_process_upe_redirect fails sometimes. if ( $charge_id && ! $order->get_meta( '_charge_id' ) ) { $order->update_meta_data( '_charge_id', $charge_id );