From e3bd42b93bf5f8d9eed8effdaad13bce90437ec6 Mon Sep 17 00:00:00 2001 From: Alex P Date: Wed, 7 Jun 2023 16:27:31 +0300 Subject: [PATCH] Add return-url error logging --- modules/ppcp-wc-gateway/services.php | 3 ++- .../src/Endpoint/ReturnUrlEndpoint.php | 25 ++++++++++++++++--- 2 files changed, 23 insertions(+), 5 deletions(-) diff --git a/modules/ppcp-wc-gateway/services.php b/modules/ppcp-wc-gateway/services.php index 901c1f94a..64de3e79c 100644 --- a/modules/ppcp-wc-gateway/services.php +++ b/modules/ppcp-wc-gateway/services.php @@ -942,7 +942,8 @@ return array( return new ReturnUrlEndpoint( $gateway, $endpoint, - $prefix + $prefix, + $container->get( 'woocommerce.logger.woocommerce' ) ); }, diff --git a/modules/ppcp-wc-gateway/src/Endpoint/ReturnUrlEndpoint.php b/modules/ppcp-wc-gateway/src/Endpoint/ReturnUrlEndpoint.php index 57c29c2a4..3a503b540 100644 --- a/modules/ppcp-wc-gateway/src/Endpoint/ReturnUrlEndpoint.php +++ b/modules/ppcp-wc-gateway/src/Endpoint/ReturnUrlEndpoint.php @@ -9,6 +9,7 @@ declare(strict_types=1); namespace WooCommerce\PayPalCommerce\WcGateway\Endpoint; +use Psr\Log\LoggerInterface; use WooCommerce\PayPalCommerce\ApiClient\Endpoint\OrderEndpoint; use WooCommerce\PayPalCommerce\WcGateway\Gateway\OXXO\OXXOGateway; use WooCommerce\PayPalCommerce\WcGateway\Gateway\PayPalGateway; @@ -36,17 +37,31 @@ class ReturnUrlEndpoint { */ private $order_endpoint; + /** + * The logger. + * + * @var LoggerInterface + */ + protected $logger; + /** * ReturnUrlEndpoint constructor. * - * @param PayPalGateway $gateway The PayPal Gateway. - * @param OrderEndpoint $order_endpoint The Order Endpoint. - * @param string $prefix The prefix. + * @param PayPalGateway $gateway The PayPal Gateway. + * @param OrderEndpoint $order_endpoint The Order Endpoint. + * @param string $prefix The prefix. + * @param LoggerInterface $logger The logger. */ - public function __construct( PayPalGateway $gateway, OrderEndpoint $order_endpoint, string $prefix ) { + public function __construct( + PayPalGateway $gateway, + OrderEndpoint $order_endpoint, + string $prefix, + LoggerInterface $logger + ) { $this->gateway = $gateway; $this->order_endpoint = $order_endpoint; $this->prefix = $prefix; + $this->logger = $logger; } /** @@ -65,11 +80,13 @@ class ReturnUrlEndpoint { $wc_order_id = $this->sanitize_custom_id( $order->purchase_units()[0]->custom_id() ); if ( ! $wc_order_id ) { + $this->logger->warning( "Return URL endpoint $token: no WC order ID." ); exit(); } $wc_order = wc_get_order( $wc_order_id ); if ( ! is_a( $wc_order, \WC_Order::class ) ) { + $this->logger->warning( "Return URL endpoint $token: WC order $wc_order_id not found." ); exit(); }