Merge pull request #2667 from woocommerce/PCP-3744-fix-multicurrency

Fix multi-currency support
This commit is contained in:
Emili Castells 2024-10-03 12:40:35 +02:00 committed by GitHub
commit 634b3707ee
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
30 changed files with 238 additions and 165 deletions

View file

@ -36,7 +36,7 @@ return array(
return new ApmApplies(
$container->get( 'googlepay.supported-countries' ),
$container->get( 'googlepay.supported-currencies' ),
$container->get( 'api.shop.currency' ),
$container->get( 'api.shop.currency.getter' ),
$container->get( 'api.shop.country' )
);
},
@ -179,7 +179,6 @@ return array(
$container->get( 'wcgateway.settings' ),
$container->get( 'onboarding.environment' ),
$container->get( 'wcgateway.settings.status' ),
$container->get( 'api.shop.currency' ),
$container->get( 'woocommerce.logger.woocommerce' )
);
},

View file

@ -71,13 +71,6 @@ class Button implements ButtonInterface {
*/
private $settings_status;
/**
* 3-letter currency code of the shop.
*
* @var string
*/
private $currency;
/**
* The logger.
*
@ -102,7 +95,6 @@ class Button implements ButtonInterface {
* @param Settings $settings The Settings.
* @param Environment $environment The environment object.
* @param SettingsStatus $settings_status The Settings status helper.
* @param string $currency 3-letter currency code of the shop.
* @param LoggerInterface $logger The logger.
*/
public function __construct(
@ -113,7 +105,6 @@ class Button implements ButtonInterface {
Settings $settings,
Environment $environment,
SettingsStatus $settings_status,
string $currency,
LoggerInterface $logger
) {
@ -124,7 +115,6 @@ class Button implements ButtonInterface {
$this->settings = $settings;
$this->environment = $environment;
$this->settings_status = $settings_status;
$this->currency = $currency;
$this->logger = $logger;
}

View file

@ -10,6 +10,8 @@ declare(strict_types=1);
namespace WooCommerce\PayPalCommerce\Googlepay\Helper;
use WooCommerce\PayPalCommerce\ApiClient\Helper\CurrencyGetter;
/**
* Class ApmApplies
*/
@ -30,11 +32,11 @@ class ApmApplies {
private $allowed_currencies;
/**
* 3-letter currency code of the shop.
* The getter of the 3-letter currency code of the shop.
*
* @var string
* @var CurrencyGetter
*/
private $currency;
private CurrencyGetter $currency;
/**
* 2-letter country code of the shop.
@ -46,15 +48,15 @@ class ApmApplies {
/**
* DccApplies constructor.
*
* @param array $allowed_countries The list of which countries can be used for GooglePay.
* @param array $allowed_currencies The list of which currencies can be used for GooglePay.
* @param string $currency 3-letter currency code of the shop.
* @param string $country 2-letter country code of the shop.
* @param array $allowed_countries The list of which countries can be used for GooglePay.
* @param array $allowed_currencies The list of which currencies can be used for GooglePay.
* @param CurrencyGetter $currency The getter of the 3-letter currency code of the shop.
* @param string $country 2-letter country code of the shop.
*/
public function __construct(
array $allowed_countries,
array $allowed_currencies,
string $currency,
CurrencyGetter $currency,
string $country
) {
$this->allowed_countries = $allowed_countries;
@ -78,7 +80,7 @@ class ApmApplies {
* @return bool
*/
public function for_currency(): bool {
return in_array( $this->currency, $this->allowed_currencies, true );
return in_array( $this->currency->get(), $this->allowed_currencies, true );
}
}