Add GooglePay onboarding improvements.

This commit is contained in:
Pedro Silva 2023-09-11 10:04:38 +01:00
parent bad21380b3
commit b703f17bbf
No known key found for this signature in database
GPG key ID: E2EE20C0669D24B3
7 changed files with 31 additions and 16 deletions

View file

@ -16,6 +16,7 @@ use WooCommerce\PayPalCommerce\Vendor\Dhii\Container\ServiceProvider;
use WooCommerce\PayPalCommerce\Vendor\Dhii\Modular\Module\ModuleInterface;
use WooCommerce\PayPalCommerce\Vendor\Interop\Container\ServiceProviderInterface;
use WooCommerce\PayPalCommerce\Vendor\Psr\Container\ContainerInterface;
use WooCommerce\PayPalCommerce\WcGateway\Settings\Settings;
/**
* Class GooglepayModule
@ -77,10 +78,15 @@ class GooglepayModule implements ModuleInterface {
// Clear product status handling.
add_action(
'woocommerce_paypal_payments_clear_apm_product_status',
function() use ( $c ): void {
function( Settings $settings = null ) use ( $c ): void {
$apm_status = $c->get( 'googlepay.helpers.apm-product-status' );
assert( $apm_status instanceof ApmProductStatus );
$apm_status->clear();
if ( ! $settings instanceof Settings ) {
$settings = null;
}
$apm_status->clear( $settings );
}
);

View file

@ -121,13 +121,19 @@ class ApmProductStatus {
/**
* Clears the persisted result to force a recheck.
*
* @param Settings|null $settings The settings object.
* We accept a Settings object to don't override other sequential settings that are being updated elsewhere.
* @return void
*/
public function clear(): void {
public function clear( Settings $settings = null ): void {
if ( null === $settings ) {
$settings = $this->settings;
}
$this->current_status = null;
$this->settings->set( self::SETTINGS_KEY, self::SETTINGS_VALUE_UNDEFINED );
$this->settings->persist();
$settings->set( self::SETTINGS_KEY, self::SETTINGS_VALUE_UNDEFINED );
$settings->persist();
}
}