From f857315055493872a77dd2642be108898839bb37 Mon Sep 17 00:00:00 2001 From: Emili Castells Guasch Date: Tue, 21 Mar 2023 12:22:53 +0100 Subject: [PATCH] Cleanup caching data on plugin upgrade --- .../src/Helper/DCCProductStatus.php | 4 ++-- .../Helper/PayUponInvoiceProductStatus.php | 4 ++-- .../ppcp-wc-gateway/src/WCGatewayModule.php | 19 +++++++++++++++++++ 3 files changed, 23 insertions(+), 4 deletions(-) diff --git a/modules/ppcp-wc-gateway/src/Helper/DCCProductStatus.php b/modules/ppcp-wc-gateway/src/Helper/DCCProductStatus.php index 02e676dad..dbe279865 100644 --- a/modules/ppcp-wc-gateway/src/Helper/DCCProductStatus.php +++ b/modules/ppcp-wc-gateway/src/Helper/DCCProductStatus.php @@ -102,11 +102,11 @@ class DCCProductStatus { return (bool) $this->cache->get( self::DCC_STATUS_CACHE_KEY ); } - if ( is_bool( $this->current_status_cache ) ) { + if ( $this->current_status_cache === true ) { return $this->current_status_cache; } - if ( $this->settings->has( 'products_dcc_enabled' ) && $this->settings->get( 'products_dcc_enabled' ) ) { + if ( $this->settings->has( 'products_dcc_enabled' ) && $this->settings->get( 'products_dcc_enabled' ) === true ) { $this->current_status_cache = true; return true; } diff --git a/modules/ppcp-wc-gateway/src/Helper/PayUponInvoiceProductStatus.php b/modules/ppcp-wc-gateway/src/Helper/PayUponInvoiceProductStatus.php index 9b80bddd2..6c7b40c8f 100644 --- a/modules/ppcp-wc-gateway/src/Helper/PayUponInvoiceProductStatus.php +++ b/modules/ppcp-wc-gateway/src/Helper/PayUponInvoiceProductStatus.php @@ -91,10 +91,10 @@ class PayUponInvoiceProductStatus { return (bool) $this->cache->get( self::PUI_STATUS_CACHE_KEY ); } - if ( is_bool( $this->current_status_cache ) ) { + if ( $this->current_status_cache === true ) { return $this->current_status_cache; } - if ( $this->settings->has( 'products_pui_enabled' ) && $this->settings->get( 'products_pui_enabled' ) ) { + if ( $this->settings->has( 'products_pui_enabled' ) && $this->settings->get( 'products_pui_enabled' ) === true ) { $this->current_status_cache = true; return true; } diff --git a/modules/ppcp-wc-gateway/src/WCGatewayModule.php b/modules/ppcp-wc-gateway/src/WCGatewayModule.php index 92105781c..f19a244e6 100644 --- a/modules/ppcp-wc-gateway/src/WCGatewayModule.php +++ b/modules/ppcp-wc-gateway/src/WCGatewayModule.php @@ -12,6 +12,7 @@ namespace WooCommerce\PayPalCommerce\WcGateway; use Psr\Log\LoggerInterface; use Throwable; use WooCommerce\PayPalCommerce\ApiClient\Exception\RuntimeException; +use WooCommerce\PayPalCommerce\ApiClient\Helper\Cache; use WooCommerce\PayPalCommerce\Vendor\Dhii\Container\ServiceProvider; use WooCommerce\PayPalCommerce\Vendor\Dhii\Modular\Module\ModuleInterface; use WC_Order; @@ -261,6 +262,24 @@ class WCGatewayModule implements ModuleInterface { } ); + add_action( + 'woocommerce_paypal_payments_gateway_migrate_on_update', + static function() use ( $c ) { + $dcc_status_cache = $c->get( 'dcc.status-cache' ); + assert( $dcc_status_cache instanceof Cache ); + $pui_status_cache = $c->get( 'pui.status-cache' ); + assert( $pui_status_cache instanceof Cache ); + + $dcc_status_cache->delete( DCCProductStatus::DCC_STATUS_CACHE_KEY ); + $pui_status_cache->delete( PayUponInvoiceProductStatus::PUI_STATUS_CACHE_KEY ); + + $settings = $c->get( 'wcgateway.settings' ); + $settings->set( 'products_dcc_enabled', false ); + $settings->set( 'products_pui_enabled', false ); + $settings->persist(); + } + ); + add_action( 'wp_loaded', function () use ( $c ) {