♻️ Refactor UnsupportedCurrencyAdminNotice

This commit is contained in:
Philipp Stracker 2025-02-17 17:28:14 +01:00
parent cf90b1706c
commit cbe63eb080
No known key found for this signature in database
2 changed files with 12 additions and 20 deletions

View file

@ -335,17 +335,12 @@ return array(
);
},
'wcgateway.notice.currency-unsupported' => static function ( ContainerInterface $container ): UnsupportedCurrencyAdminNotice {
$state = $container->get( 'onboarding.state' );
$shop_currency = $container->get( 'api.shop.currency.getter' );
$supported_currencies = $container->get( 'api.supported-currencies' );
$is_wc_gateways_list_page = $container->get( 'wcgateway.is-wc-gateways-list-page' );
$is_ppcp_settings_page = $container->get( 'wcgateway.is-ppcp-settings-page' );
return new UnsupportedCurrencyAdminNotice(
$state,
$shop_currency,
$supported_currencies,
$is_wc_gateways_list_page,
$is_ppcp_settings_page
$container->get( 'settings.flag.is-connected' ),
$container->get( 'api.shop.currency.getter' ),
$container->get( 'api.supported-currencies' ),
$container->get( 'wcgateway.is-wc-gateways-list-page' ),
$container->get( 'wcgateway.is-ppcp-settings-page' )
);
},
'wcgateway.notice.dcc-without-paypal' => static function ( ContainerInterface $container ): GatewayWithoutPayPalAdminNotice {

View file

@ -11,9 +11,6 @@ namespace WooCommerce\PayPalCommerce\WcGateway\Notice;
use WooCommerce\PayPalCommerce\AdminNotices\Entity\Message;
use WooCommerce\PayPalCommerce\ApiClient\Helper\CurrencyGetter;
use WooCommerce\PayPalCommerce\Onboarding\State;
use WooCommerce\PayPalCommerce\WcGateway\Settings\Settings;
use WooCommerce\PayPalCommerce\Vendor\Psr\Container\ContainerInterface;
/**
* Class UnsupportedCurrencyAdminNotice
@ -21,11 +18,11 @@ use WooCommerce\PayPalCommerce\Vendor\Psr\Container\ContainerInterface;
class UnsupportedCurrencyAdminNotice {
/**
* The state.
* Whether the merchant completed onboarding.
*
* @var State
* @var bool
*/
private $state;
private bool $is_connected;
/**
* The supported currencies.
@ -58,20 +55,20 @@ class UnsupportedCurrencyAdminNotice {
/**
* UnsupportedCurrencyAdminNotice constructor.
*
* @param State $state The state.
* @param bool $is_connected Whether the merchant completed onboarding.
* @param CurrencyGetter $shop_currency The shop currency.
* @param array $supported_currencies The supported currencies.
* @param bool $is_wc_gateways_list_page Indicates if we're on the WooCommerce gateways list page.
* @param bool $is_ppcp_settings_page Indicates if we're on a PPCP Settings page.
*/
public function __construct(
State $state,
bool $is_connected,
CurrencyGetter $shop_currency,
array $supported_currencies,
bool $is_wc_gateways_list_page,
bool $is_ppcp_settings_page
) {
$this->state = $state;
$this->is_connected = $is_connected;
$this->shop_currency = $shop_currency;
$this->supported_currencies = $supported_currencies;
$this->is_wc_gateways_list_page = $is_wc_gateways_list_page;
@ -110,7 +107,7 @@ class UnsupportedCurrencyAdminNotice {
* @return bool
*/
protected function should_display(): bool {
return $this->state->current_state() === State::STATE_ONBOARDED
return $this->is_connected
&& ! $this->currency_supported()
&& ( $this->is_wc_gateways_list_page || $this->is_ppcp_settings_page );
}