diff --git a/modules/ppcp-paylater-configurator/extensions.php b/modules/ppcp-paylater-configurator/extensions.php index fdf16ba97..9092912e0 100644 --- a/modules/ppcp-paylater-configurator/extensions.php +++ b/modules/ppcp-paylater-configurator/extensions.php @@ -10,6 +10,7 @@ declare(strict_types=1); namespace WooCommerce\PayPalCommerce\PayLaterConfigurator; use WooCommerce\PayPalCommerce\Vendor\Psr\Container\ContainerInterface; +use WooCommerce\PayPalCommerce\WcGateway\Settings\Settings; return array( 'wcgateway.settings.fields' => function ( ContainerInterface $container, array $fields ): array { @@ -63,8 +64,16 @@ return array( 'pay_later_home_message_flex_color', 'pay_later_home_message_flex_ratio', 'pay_later_home_message_preview', - 'pay_later_messaging_enabled', ); + + $settings = $container->get( 'wcgateway.settings' ); + assert( $settings instanceof Settings ); + $vault_enabled = $settings->has( 'vault_enabled' ) && $settings->get( 'vault_enabled' ); + + if ( ! $vault_enabled ) { + $old_fields[] = 'pay_later_messaging_enabled'; + } + foreach ( $old_fields as $old_field ) { unset( $fields[ $old_field ] ); } diff --git a/modules/ppcp-paylater-configurator/src/PayLaterConfiguratorModule.php b/modules/ppcp-paylater-configurator/src/PayLaterConfiguratorModule.php index 9259f6b02..e5bf8b291 100644 --- a/modules/ppcp-paylater-configurator/src/PayLaterConfiguratorModule.php +++ b/modules/ppcp-paylater-configurator/src/PayLaterConfiguratorModule.php @@ -50,7 +50,12 @@ class PayLaterConfiguratorModule implements ModuleInterface { $messages_apply = $c->get( 'button.helper.messages-apply' ); assert( $messages_apply instanceof MessagesApply ); - if ( ! $messages_apply->for_country() ) { + $settings = $c->get( 'wcgateway.settings' ); + assert( $settings instanceof Settings ); + + $vault_enabled = $settings->has( 'vault_enabled' ) && $settings->get( 'vault_enabled' ); + + if ( $vault_enabled || ! $messages_apply->for_country() ) { return; } @@ -69,9 +74,6 @@ class PayLaterConfiguratorModule implements ModuleInterface { return; } - $settings = $c->get( 'wcgateway.settings' ); - assert( $settings instanceof Settings ); - add_action( 'init', static function () use ( $c, $settings ) {