Fix inconsistent instance of AppleProductStatus

This commit is contained in:
Pedro Silva 2024-02-02 17:16:42 +00:00
parent 6e78c875c2
commit 42f3e575bc
No known key found for this signature in database
GPG key ID: E2EE20C0669D24B3
2 changed files with 13 additions and 9 deletions

View file

@ -18,6 +18,7 @@ use WooCommerce\PayPalCommerce\Applepay\Assets\BlocksPaymentMethod;
use WooCommerce\PayPalCommerce\Applepay\Assets\PropertiesDictionary; use WooCommerce\PayPalCommerce\Applepay\Assets\PropertiesDictionary;
use WooCommerce\PayPalCommerce\Applepay\Helper\ApmApplies; use WooCommerce\PayPalCommerce\Applepay\Helper\ApmApplies;
use WooCommerce\PayPalCommerce\Applepay\Helper\AvailabilityNotice; use WooCommerce\PayPalCommerce\Applepay\Helper\AvailabilityNotice;
use WooCommerce\PayPalCommerce\Common\Pattern\SingletonDecorator;
use WooCommerce\PayPalCommerce\Onboarding\Environment; use WooCommerce\PayPalCommerce\Onboarding\Environment;
use WooCommerce\PayPalCommerce\Onboarding\State; use WooCommerce\PayPalCommerce\Onboarding\State;
use WooCommerce\PayPalCommerce\Vendor\Psr\Container\ContainerInterface; use WooCommerce\PayPalCommerce\Vendor\Psr\Container\ContainerInterface;
@ -72,14 +73,16 @@ return array(
return $settings->has( 'applepay_validated' ) ? $settings->get( 'applepay_validated' ) === true : false; return $settings->has( 'applepay_validated' ) ? $settings->get( 'applepay_validated' ) === true : false;
}, },
'applepay.apple-product-status' => static function( ContainerInterface $container ): AppleProductStatus { 'applepay.apple-product-status' => SingletonDecorator::make(
return new AppleProductStatus( static function( ContainerInterface $container ): AppleProductStatus {
$container->get( 'wcgateway.settings' ), return new AppleProductStatus(
$container->get( 'api.endpoint.partners' ), $container->get( 'wcgateway.settings' ),
$container->get( 'onboarding.state' ), $container->get( 'api.endpoint.partners' ),
$container->get( 'api.helper.failure-registry' ) $container->get( 'onboarding.state' ),
); $container->get( 'api.helper.failure-registry' )
}, );
}
),
'applepay.available' => static function ( ContainerInterface $container ): bool { 'applepay.available' => static function ( ContainerInterface $container ): bool {
if ( apply_filters( 'woocommerce_paypal_payments_applepay_validate_product_status', true ) ) { if ( apply_filters( 'woocommerce_paypal_payments_applepay_validate_product_status', true ) ) {
$status = $container->get( 'applepay.apple-product-status' ); $status = $container->get( 'applepay.apple-product-status' );

View file

@ -346,9 +346,10 @@ class SettingsListener {
/** /**
* Prevent enabling both Pay Later messaging and PayPal vaulting * Prevent enabling both Pay Later messaging and PayPal vaulting
* *
* @return void
* @throws RuntimeException When API request fails. * @throws RuntimeException When API request fails.
*/ */
public function listen_for_vaulting_enabled() { public function listen_for_vaulting_enabled(): void {
if ( ! $this->is_valid_site_request() || State::STATE_ONBOARDED !== $this->state->current_state() ) { if ( ! $this->is_valid_site_request() || State::STATE_ONBOARDED !== $this->state->current_state() ) {
return; return;
} }