From 02506e976aa5b4bb07d0f5edbba3e036804741ba Mon Sep 17 00:00:00 2001 From: Emili Castells Guasch Date: Tue, 30 Jan 2024 11:01:19 +0100 Subject: [PATCH] Set `vault_enabled` as `false` if reference transactions is disabled --- .../src/SavePaymentMethodsModule.php | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/modules/ppcp-save-payment-methods/src/SavePaymentMethodsModule.php b/modules/ppcp-save-payment-methods/src/SavePaymentMethodsModule.php index dc9c47580..a615002be 100644 --- a/modules/ppcp-save-payment-methods/src/SavePaymentMethodsModule.php +++ b/modules/ppcp-save-payment-methods/src/SavePaymentMethodsModule.php @@ -12,6 +12,7 @@ namespace WooCommerce\PayPalCommerce\SavePaymentMethods; use Psr\Log\LoggerInterface; use WC_Order; use WooCommerce\PayPalCommerce\ApiClient\Authentication\UserIdToken; +use WooCommerce\PayPalCommerce\ApiClient\Endpoint\BillingAgreementsEndpoint; use WooCommerce\PayPalCommerce\ApiClient\Endpoint\PaymentTokensEndpoint; use WooCommerce\PayPalCommerce\ApiClient\Entity\Order; use WooCommerce\PayPalCommerce\ApiClient\Entity\PaymentSource; @@ -57,6 +58,16 @@ class SavePaymentMethodsModule implements ModuleInterface { $settings = $c->get( 'wcgateway.settings' ); assert( $settings instanceof Settings ); + + $billing_agreements_endpoint = $c->get( 'api.endpoint.billing-agreements' ); + assert( $billing_agreements_endpoint instanceof BillingAgreementsEndpoint ); + + $reference_transaction_enabled = $billing_agreements_endpoint->reference_transaction_enabled(); + if ( $reference_transaction_enabled !== true ) { + $settings->set( 'vault_enabled', false ); + $settings->persist(); + } + if ( ( ! $settings->has( 'vault_enabled' ) || ! $settings->get( 'vault_enabled' ) ) && ( ! $settings->has( 'vault_enabled_dcc' ) || ! $settings->get( 'vault_enabled_dcc' ) )