From 349f606ced4233239e15b342d37520df726f65a9 Mon Sep 17 00:00:00 2001 From: Alex P Date: Mon, 31 Oct 2022 15:29:58 +0200 Subject: [PATCH 1/3] Fix preview error when missing elements --- modules/ppcp-wc-gateway/resources/js/gateway-settings.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/modules/ppcp-wc-gateway/resources/js/gateway-settings.js b/modules/ppcp-wc-gateway/resources/js/gateway-settings.js index 7f502628c..dea91a6db 100644 --- a/modules/ppcp-wc-gateway/resources/js/gateway-settings.js +++ b/modules/ppcp-wc-gateway/resources/js/gateway-settings.js @@ -74,6 +74,9 @@ import Renderer from '../../../ppcp-button/resources/js/modules/Renderer/Rendere function createButtonPreview(settingsCallback) { const render = (settings) => { const wrapper = document.querySelector(settings.button.wrapper); + if (!wrapper) { + return; + } wrapper.innerHTML = ''; const renderer = new Renderer(null, settings, (data, actions) => actions.reject(), null); @@ -117,7 +120,7 @@ import Renderer from '../../../ppcp-button/resources/js/modules/Renderer/Rendere 'enable-funding': ['venmo'], 'buyer-country': PayPalCommerceGatewaySettings.country, }; - if (disabledSources.length) { + if (disabledSources?.length) { settings['disable-funding'] = disabledSources; } return settings; From 59472bf140741028e3a451f457556e4b26f33e34 Mon Sep 17 00:00:00 2001 From: Alex P Date: Mon, 31 Oct 2022 16:14:15 +0200 Subject: [PATCH 2/3] Hide the subscription option without js It was causing js error + no reason to use js for this --- .../resources/js/gateway-settings.js | 4 --- modules/ppcp-wc-gateway/services.php | 6 ++++- .../src/Assets/SettingsPageAssets.php | 25 +++++-------------- .../ppcp-wc-gateway/src/WCGatewayModule.php | 3 +-- .../Assets/SettingsPagesAssetsTest.php | 5 +--- 5 files changed, 13 insertions(+), 30 deletions(-) diff --git a/modules/ppcp-wc-gateway/resources/js/gateway-settings.js b/modules/ppcp-wc-gateway/resources/js/gateway-settings.js index cf9ee45bd..8e8cfe21b 100644 --- a/modules/ppcp-wc-gateway/resources/js/gateway-settings.js +++ b/modules/ppcp-wc-gateway/resources/js/gateway-settings.js @@ -69,9 +69,5 @@ togglePayLater() vaultingCheckboxes.forEach(node => node.addEventListener('change', togglePayLater)); - - if(PayPalCommerceGatewaySettings.is_subscriptions_plugin_active !== '1') { - document.getElementById('field-subscription_behavior_when_vault_fails').style.display = 'none'; - } } ); diff --git a/modules/ppcp-wc-gateway/services.php b/modules/ppcp-wc-gateway/services.php index e9c9370b8..2c495324d 100644 --- a/modules/ppcp-wc-gateway/services.php +++ b/modules/ppcp-wc-gateway/services.php @@ -22,6 +22,7 @@ use WooCommerce\PayPalCommerce\Button\Helper\MessagesDisclaimers; use WooCommerce\PayPalCommerce\Onboarding\Environment; use WooCommerce\PayPalCommerce\Onboarding\Render\OnboardingOptionsRenderer; use WooCommerce\PayPalCommerce\Onboarding\State; +use WooCommerce\PayPalCommerce\Subscription\Helper\SubscriptionHelper; use WooCommerce\PayPalCommerce\WcGateway\Admin\FeesRenderer; use WooCommerce\PayPalCommerce\WcGateway\Admin\OrderTablePaymentStatusColumn; use WooCommerce\PayPalCommerce\WcGateway\Admin\PaymentStatusOrderDetail; @@ -401,6 +402,9 @@ return array( $onboarding_options_renderer = $container->get( 'onboarding.render-options' ); assert( $onboarding_options_renderer instanceof OnboardingOptionsRenderer ); + $subscription_helper = $container->get( 'subscription.helper' ); + assert( $subscription_helper instanceof SubscriptionHelper ); + $fields = array( 'checkout_settings_heading' => array( 'heading' => __( 'Standard Payments Settings', 'woocommerce-paypal-payments' ), @@ -614,7 +618,7 @@ return array( 'subscription_behavior_when_vault_fails' => array( 'title' => __( 'Subscription capture behavior if Vault fails', 'woocommerce-paypal-payments' ), 'type' => 'select', - 'class' => array(), + 'classes' => $subscription_helper->plugin_is_active() ? array() : array( 'hide' ), 'input_class' => array( 'wc-enhanced-select' ), 'default' => 'void_auth', 'desc_tip' => true, diff --git a/modules/ppcp-wc-gateway/src/Assets/SettingsPageAssets.php b/modules/ppcp-wc-gateway/src/Assets/SettingsPageAssets.php index 5926580ff..43e6aa87e 100644 --- a/modules/ppcp-wc-gateway/src/Assets/SettingsPageAssets.php +++ b/modules/ppcp-wc-gateway/src/Assets/SettingsPageAssets.php @@ -9,8 +9,6 @@ declare(strict_types=1); namespace WooCommerce\PayPalCommerce\WcGateway\Assets; -use WooCommerce\PayPalCommerce\Subscription\Helper\SubscriptionHelper; - /** * Class SettingsPageAssets */ @@ -30,24 +28,15 @@ class SettingsPageAssets { */ private $version; - /** - * The subscription helper. - * - * @var SubscriptionHelper - */ - protected $subscription_helper; - /** * Assets constructor. * - * @param string $module_url The url of this module. - * @param string $version The assets version. - * @param SubscriptionHelper $subscription_helper The subscription helper. + * @param string $module_url The url of this module. + * @param string $version The assets version. */ - public function __construct( string $module_url, string $version, SubscriptionHelper $subscription_helper ) { - $this->module_url = $module_url; - $this->version = $version; - $this->subscription_helper = $subscription_helper; + public function __construct( string $module_url, string $version ) { + $this->module_url = $module_url; + $this->version = $version; } /** @@ -110,9 +99,7 @@ class SettingsPageAssets { wp_localize_script( 'ppcp-gateway-settings', 'PayPalCommerceGatewaySettings', - array( - 'is_subscriptions_plugin_active' => $this->subscription_helper->plugin_is_active(), - ) + array() ); } } diff --git a/modules/ppcp-wc-gateway/src/WCGatewayModule.php b/modules/ppcp-wc-gateway/src/WCGatewayModule.php index 7fb9c0b3c..ce0ad3c0e 100644 --- a/modules/ppcp-wc-gateway/src/WCGatewayModule.php +++ b/modules/ppcp-wc-gateway/src/WCGatewayModule.php @@ -156,8 +156,7 @@ class WCGatewayModule implements ModuleInterface { if ( $c->has( 'wcgateway.url' ) ) { $assets = new SettingsPageAssets( $c->get( 'wcgateway.url' ), - $c->get( 'ppcp.asset-version' ), - $c->get( 'subscription.helper' ) + $c->get( 'ppcp.asset-version' ) ); $assets->register_assets(); } diff --git a/tests/PHPUnit/WcGateway/Assets/SettingsPagesAssetsTest.php b/tests/PHPUnit/WcGateway/Assets/SettingsPagesAssetsTest.php index 23f32d100..f8d723e51 100644 --- a/tests/PHPUnit/WcGateway/Assets/SettingsPagesAssetsTest.php +++ b/tests/PHPUnit/WcGateway/Assets/SettingsPagesAssetsTest.php @@ -2,8 +2,6 @@ namespace WooCommerce\PayPalCommerce\WcGateway\Assets; -use WooCommerce\PayPalCommerce\ApiClient\Authentication\Bearer; -use WooCommerce\PayPalCommerce\Subscription\Helper\SubscriptionHelper; use WooCommerce\PayPalCommerce\TestCase; use function Brain\Monkey\Functions\when; use Mockery; @@ -14,9 +12,8 @@ class SettingsPagesAssetsTest extends TestCase { $moduleUrl = 'http://example.com/wp-content/plugins/woocommerce-paypal-payments/modules/ppcp-wc-gateway'; $modulePath = '/var/www/html/wp-content/plugins/woocommerce-paypal-payments/modules/ppcp-wc-gateway'; - $subscriptionsHelper = Mockery::mock(SubscriptionHelper::class); - $testee = new SettingsPageAssets($moduleUrl, $modulePath, $subscriptionsHelper); + $testee = new SettingsPageAssets($moduleUrl, $modulePath); when('is_admin') ->justReturn(true); From c72c95d1601fb0ecb3dea63efbbf32c0f8762861 Mon Sep 17 00:00:00 2001 From: Danae Millan Date: Tue, 1 Nov 2022 11:40:30 -0300 Subject: [PATCH 3/3] Update 1.9.5 release date --- changelog.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/changelog.txt b/changelog.txt index dce24b11c..159eb9603 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,6 +1,6 @@ *** Changelog *** -= 1.9.5 - TBD = += 1.9.5 - 2022-11-01 = * Fix - Invalid tracking number in logs when adding tracking #903 * Fix - Tracking on Connection tab always enabled #900 * Fix - PUI payment instructions printed in the refund email #873