From 3e6efdea7653487772896a32e67e74c177ef46bd Mon Sep 17 00:00:00 2001 From: dinamiko Date: Wed, 9 Jun 2021 17:19:48 +0200 Subject: [PATCH] Ensure shipping info when patching order --- .../src/Endpoint/class-orderendpoint.php | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/modules/ppcp-api-client/src/Endpoint/class-orderendpoint.php b/modules/ppcp-api-client/src/Endpoint/class-orderendpoint.php index dd2003b36..adb41a59b 100644 --- a/modules/ppcp-api-client/src/Endpoint/class-orderendpoint.php +++ b/modules/ppcp-api-client/src/Endpoint/class-orderendpoint.php @@ -502,6 +502,14 @@ class OrderEndpoint { return $order_to_update; } + $patches_array = $patches->to_array(); + if ( ! isset( $patches_array[0]['value']['shipping'] ) ) { + $shipping = isset( $order_to_update->purchase_units()[0] ) && null !== $order_to_update->purchase_units()[0]->shipping() ? $order_to_update->purchase_units()[0]->shipping() : null; + if ( $shipping ) { + $patches_array[0]['value']['shipping'] = $shipping->to_array(); + } + } + $bearer = $this->bearer->bearer(); $url = trailingslashit( $this->host ) . 'v2/checkout/orders/' . $order_to_update->id(); $args = array( @@ -514,7 +522,7 @@ class OrderEndpoint { $order_to_update ), ), - 'body' => wp_json_encode( $patches->to_array() ), + 'body' => wp_json_encode( $patches_array ), ); if ( $this->bn_code ) { $args['headers']['PayPal-Partner-Attribution-Id'] = $this->bn_code;