From cce8ee9d8d41abd437e858ac9d195aa3267f46f8 Mon Sep 17 00:00:00 2001 From: Emili Castells Guasch Date: Thu, 2 Mar 2023 12:08:20 +0100 Subject: [PATCH] Remove calls to enpoints if not onboarded --- modules/ppcp-wc-gateway/services.php | 15 +++++++++++++++ modules/ppcp-webhooks/services.php | 8 +++++++- modules/ppcp-webhooks/src/WebhookModule.php | 5 +++-- 3 files changed, 25 insertions(+), 3 deletions(-) diff --git a/modules/ppcp-wc-gateway/services.php b/modules/ppcp-wc-gateway/services.php index 1f3393337..3abe68006 100644 --- a/modules/ppcp-wc-gateway/services.php +++ b/modules/ppcp-wc-gateway/services.php @@ -242,6 +242,11 @@ return array( ); }, 'wcgateway.settings.sections' => static function ( ContainerInterface $container ): array { + $state = $container->get( 'onboarding.state' ); + if ( $state->current_state() < State::STATE_ONBOARDED ) { + return array(); + } + $sections = array( Settings::CONNECTION_TAB_ID => __( 'Connection', 'woocommerce-paypal-payments' ), PayPalGateway::ID => __( 'Standard Payments', 'woocommerce-paypal-payments' ), @@ -1246,6 +1251,11 @@ return array( return 'https://www.paypal.com/bizsignup/entry?country.x=DE&product=payment_methods&capabilities=PAY_UPON_INVOICE'; }, 'wcgateway.settings.connection.dcc-status-text' => static function ( ContainerInterface $container ): string { + $state = $container->get( 'onboarding.state' ); + if ( $state->current_state() < State::STATE_ONBOARDED ) { + return ''; + } + $dcc_product_status = $container->get( 'wcgateway.helper.dcc-product-status' ); assert( $dcc_product_status instanceof DCCProductStatus ); @@ -1279,6 +1289,11 @@ return array( ); }, 'wcgateway.settings.connection.pui-status-text' => static function ( ContainerInterface $container ): string { + $state = $container->get( 'onboarding.state' ); + if ( $state->current_state() < State::STATE_ONBOARDED ) { + return ''; + } + $pui_product_status = $container->get( 'wcgateway.pay-upon-invoice-product-status' ); assert( $pui_product_status instanceof PayUponInvoiceProductStatus ); diff --git a/modules/ppcp-webhooks/services.php b/modules/ppcp-webhooks/services.php index d7ed8013c..49b48778c 100644 --- a/modules/ppcp-webhooks/services.php +++ b/modules/ppcp-webhooks/services.php @@ -14,6 +14,7 @@ use Psr\Log\LoggerInterface; use WooCommerce\PayPalCommerce\ApiClient\Endpoint\WebhookEndpoint; use WooCommerce\PayPalCommerce\ApiClient\Entity\Webhook; use WooCommerce\PayPalCommerce\ApiClient\Factory\WebhookFactory; +use WooCommerce\PayPalCommerce\Onboarding\State; use WooCommerce\PayPalCommerce\Webhooks\Endpoint\ResubscribeEndpoint; use WooCommerce\PayPalCommerce\Webhooks\Endpoint\SimulateEndpoint; use WooCommerce\PayPalCommerce\Webhooks\Endpoint\SimulationStateEndpoint; @@ -113,7 +114,12 @@ return array( $endpoint = $container->get( 'api.endpoint.webhook' ); assert( $endpoint instanceof WebhookEndpoint ); - return $endpoint->list(); + $state = $container->get( 'onboarding.state' ); + if ( $state->current_state() >= State::STATE_ONBOARDED ) { + return $endpoint->list(); + } + + return array(); }, 'webhook.status.registered-webhooks-data' => function( ContainerInterface $container ) : array { diff --git a/modules/ppcp-webhooks/src/WebhookModule.php b/modules/ppcp-webhooks/src/WebhookModule.php index 6f8669a8b..35c865f5e 100644 --- a/modules/ppcp-webhooks/src/WebhookModule.php +++ b/modules/ppcp-webhooks/src/WebhookModule.php @@ -9,6 +9,7 @@ declare(strict_types=1); namespace WooCommerce\PayPalCommerce\Webhooks; +use WooCommerce\PayPalCommerce\Onboarding\State; use WooCommerce\PayPalCommerce\Vendor\Dhii\Container\ServiceProvider; use WooCommerce\PayPalCommerce\Vendor\Dhii\Modular\Module\ModuleInterface; use Exception; @@ -126,8 +127,8 @@ class WebhookModule implements ModuleInterface { try { $webhooks = $container->get( 'webhook.status.registered-webhooks' ); - - if ( empty( $webhooks ) ) { + $state = $container->get( 'onboarding.state' ); + if ( empty( $webhooks ) && $state->current_state() >= State::STATE_ONBOARDED ) { $registrar = $container->get( 'webhook.registrar' ); assert( $registrar instanceof WebhookRegistrar );