From bee2a8d5ba9be2062dc645a19668265a35f875ce Mon Sep 17 00:00:00 2001 From: Alex P Date: Wed, 31 May 2023 16:18:34 +0300 Subject: [PATCH] Do not send whole order in create order response --- .../ActionHandler/CheckoutActionHandler.js | 2 +- .../src/Endpoint/CreateOrderEndpoint.php | 19 ++++++++++++++++--- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/modules/ppcp-button/resources/js/modules/ActionHandler/CheckoutActionHandler.js b/modules/ppcp-button/resources/js/modules/ActionHandler/CheckoutActionHandler.js index 7c1b6f238..f0654c4f0 100644 --- a/modules/ppcp-button/resources/js/modules/ActionHandler/CheckoutActionHandler.js +++ b/modules/ppcp-button/resources/js/modules/ActionHandler/CheckoutActionHandler.js @@ -109,7 +109,7 @@ class CheckoutActionHandler { const input = document.createElement('input'); input.setAttribute('type', 'hidden'); input.setAttribute('name', 'ppcp-resume-order'); - input.setAttribute('value', data.data.purchase_units[0].custom_id); + input.setAttribute('value', data.data.custom_id); document.querySelector(formSelector).appendChild(input); return data.data.id; }); diff --git a/modules/ppcp-button/src/Endpoint/CreateOrderEndpoint.php b/modules/ppcp-button/src/Endpoint/CreateOrderEndpoint.php index a88cb9875..83d5f89b1 100644 --- a/modules/ppcp-button/src/Endpoint/CreateOrderEndpoint.php +++ b/modules/ppcp-button/src/Endpoint/CreateOrderEndpoint.php @@ -292,7 +292,7 @@ class CreateOrderEndpoint implements EndpointInterface { ! $this->early_order_handler->should_create_early_order() || $this->registration_needed || isset( $data['createaccount'] ) && '1' === $data['createaccount'] ) { - wp_send_json_success( $order->to_array() ); + wp_send_json_success( $this->make_response( $order ) ); } $this->early_order_handler->register_for_order( $order ); @@ -304,7 +304,7 @@ class CreateOrderEndpoint implements EndpointInterface { $wc_order->save_meta_data(); } - wp_send_json_success( $order->to_array() ); + wp_send_json_success( $this->make_response( $order ) ); return true; } catch ( ValidationException $error ) { @@ -362,7 +362,7 @@ class CreateOrderEndpoint implements EndpointInterface { * during the "onApprove"-JS callback or the webhook listener. */ if ( ! $this->early_order_handler->should_create_early_order() ) { - wp_send_json_success( $order->to_array() ); + wp_send_json_success( $this->make_response( $order ) ); } $this->early_order_handler->register_for_order( $order ); return $data; @@ -569,4 +569,17 @@ class CreateOrderEndpoint implements EndpointInterface { ); } } + + /** + * Returns the response data for success response. + * + * @param Order $order The PayPal order. + * @return array + */ + private function make_response( Order $order ): array { + return array( + 'id' => $order->id(), + 'custom_id' => $order->purchase_units()[0]->custom_id(), + ); + } }