From 24d95707548bd595dc3316de74ec7d9d2c0d47ff Mon Sep 17 00:00:00 2001 From: Oskar Modig Date: Thu, 14 Oct 2021 14:22:13 +0200 Subject: [PATCH 1/2] make order processing methods static --- includes/data/mutation/class-checkout-mutation.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/includes/data/mutation/class-checkout-mutation.php b/includes/data/mutation/class-checkout-mutation.php index 24bb2b355..d020f5a46 100644 --- a/includes/data/mutation/class-checkout-mutation.php +++ b/includes/data/mutation/class-checkout-mutation.php @@ -509,7 +509,7 @@ protected static function validate_checkout( &$data ) { * * @return array. */ - protected function process_order_payment( $order_id, $payment_method ) { + protected static function process_order_payment( $order_id, $payment_method ) { $available_gateways = WC()->payment_gateways->get_available_payment_gateways(); if ( ! isset( $available_gateways[ $payment_method ] ) ) { @@ -538,7 +538,7 @@ protected function process_order_payment( $order_id, $payment_method ) { * * @return array */ - protected function process_order_without_payment( $order_id, $transaction_id = '' ) { + protected static function process_order_without_payment( $order_id, $transaction_id = '' ) { $order = wc_get_order( $order_id ); $order->payment_complete( $transaction_id ); wc_empty_cart(); From b417b9219937953183551f40f5dc9657d6e42a67 Mon Sep 17 00:00:00 2001 From: Oskar Modig Date: Mon, 7 Feb 2022 17:36:37 +0100 Subject: [PATCH 2/2] get order for graphql_woocommerce_after_checkout action and catch block --- includes/mutation/class-checkout.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/includes/mutation/class-checkout.php b/includes/mutation/class-checkout.php index 76f1c4cfe..8a0e8a95b 100644 --- a/includes/mutation/class-checkout.php +++ b/includes/mutation/class-checkout.php @@ -150,6 +150,7 @@ public static function mutate_and_get_payload() { throw new UserError( $order_id->get_error_message( 'checkout-error' ) ); } + $order = \WC_Order_Factory::get_order( $order_id ); /** * Action called after checking out. * @@ -158,7 +159,7 @@ public static function mutate_and_get_payload() { * @param AppContext $context Request AppContext instance. * @param ResolveInfo $info Request ResolveInfo instance. */ - do_action( 'graphql_woocommerce_after_checkout', $order_id, $input, $context, $info ); + do_action( 'graphql_woocommerce_after_checkout', $order, $input, $context, $info ); return array_merge( array( 'id' => $order_id ), $results ); } catch ( Exception $e ) {