diff --git a/composer.lock b/composer.lock index 367c86ed7..1c8ca84eb 100644 --- a/composer.lock +++ b/composer.lock @@ -556,16 +556,16 @@ }, { "name": "antecedent/patchwork", - "version": "2.1.15", + "version": "2.1.17", "source": { "type": "git", "url": "https://github.com/antecedent/patchwork.git", - "reference": "0430ceaac7f447f1778c199ec19d7e4362a6f961" + "reference": "df5aba175a44c2996ced4edf8ec9f9081b5348c0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/antecedent/patchwork/zipball/0430ceaac7f447f1778c199ec19d7e4362a6f961", - "reference": "0430ceaac7f447f1778c199ec19d7e4362a6f961", + "url": "https://api.github.com/repos/antecedent/patchwork/zipball/df5aba175a44c2996ced4edf8ec9f9081b5348c0", + "reference": "df5aba175a44c2996ced4edf8ec9f9081b5348c0", "shasum": "" }, "require": { @@ -596,7 +596,7 @@ "runkit", "testing" ], - "time": "2021-08-22T08:00:13+00:00" + "time": "2021-10-21T14:22:43+00:00" }, { "name": "brain/monkey", @@ -735,16 +735,16 @@ }, { "name": "composer/semver", - "version": "3.2.5", + "version": "3.2.6", "source": { "type": "git", "url": "https://github.com/composer/semver.git", - "reference": "31f3ea725711245195f62e54ffa402d8ef2fdba9" + "reference": "83e511e247de329283478496f7a1e114c9517506" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/semver/zipball/31f3ea725711245195f62e54ffa402d8ef2fdba9", - "reference": "31f3ea725711245195f62e54ffa402d8ef2fdba9", + "url": "https://api.github.com/repos/composer/semver/zipball/83e511e247de329283478496f7a1e114c9517506", + "reference": "83e511e247de329283478496f7a1e114c9517506", "shasum": "" }, "require": { @@ -807,7 +807,7 @@ "type": "tidelift" } ], - "time": "2021-05-24T12:41:47+00:00" + "time": "2021-10-25T11:34:17+00:00" }, { "name": "composer/xdebug-handler", @@ -2921,7 +2921,6 @@ "type": "github" } ], - "abandoned": true, "time": "2020-11-30T07:30:19+00:00" }, { @@ -3532,16 +3531,16 @@ }, { "name": "vimeo/psalm", - "version": "4.10.0", + "version": "4.11.2", "source": { "type": "git", "url": "https://github.com/vimeo/psalm.git", - "reference": "916b098b008f6de4543892b1e0651c1c3b92cbfa" + "reference": "6fba5eb554f9507b72932f9c75533d8af593688d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/vimeo/psalm/zipball/916b098b008f6de4543892b1e0651c1c3b92cbfa", - "reference": "916b098b008f6de4543892b1e0651c1c3b92cbfa", + "url": "https://api.github.com/repos/vimeo/psalm/zipball/6fba5eb554f9507b72932f9c75533d8af593688d", + "reference": "6fba5eb554f9507b72932f9c75533d8af593688d", "shasum": "" }, "require": { @@ -3561,7 +3560,7 @@ "felixfbecker/advanced-json-rpc": "^3.0.3", "felixfbecker/language-server-protocol": "^1.5", "netresearch/jsonmapper": "^1.0 || ^2.0 || ^3.0 || ^4.0", - "nikic/php-parser": "^4.12", + "nikic/php-parser": "^4.13", "openlss/lib-array2xml": "^1.0", "php": "^7.1|^8", "sebastian/diff": "^3.0 || ^4.0", @@ -3629,7 +3628,7 @@ "inspection", "php" ], - "time": "2021-09-04T21:00:09+00:00" + "time": "2021-10-26T17:28:17+00:00" }, { "name": "webmozart/assert", diff --git a/modules/ppcp-button/resources/js/modules/Renderer/CreditCardRenderer.js b/modules/ppcp-button/resources/js/modules/Renderer/CreditCardRenderer.js index 33da3ab45..72206247a 100644 --- a/modules/ppcp-button/resources/js/modules/Renderer/CreditCardRenderer.js +++ b/modules/ppcp-button/resources/js/modules/Renderer/CreditCardRenderer.js @@ -182,8 +182,11 @@ class CreditCardRenderer { if (this.formValid && this.cardValid) { const save_card = this.defaultConfig.save_card ? true : false; - const vault = document.getElementById('ppcp-credit-card-vault') ? + let vault = document.getElementById('ppcp-credit-card-vault') ? document.getElementById('ppcp-credit-card-vault').checked : save_card; + if (this.defaultConfig.enforce_vault) { + vault = true; + } const contingency = this.defaultConfig.hosted_fields.contingency; const hostedFieldsData = { vault: vault diff --git a/modules/ppcp-button/src/Endpoint/CreateOrderEndpoint.php b/modules/ppcp-button/src/Endpoint/CreateOrderEndpoint.php index 3e2869a60..897344f2c 100644 --- a/modules/ppcp-button/src/Endpoint/CreateOrderEndpoint.php +++ b/modules/ppcp-button/src/Endpoint/CreateOrderEndpoint.php @@ -31,7 +31,6 @@ use WooCommerce\PayPalCommerce\WcGateway\Settings\Settings; */ class CreateOrderEndpoint implements EndpointInterface { - const ENDPOINT = 'ppc-create-order'; /** diff --git a/modules/ppcp-wc-gateway/services.php b/modules/ppcp-wc-gateway/services.php index cb7d39f2c..c806c76e5 100644 --- a/modules/ppcp-wc-gateway/services.php +++ b/modules/ppcp-wc-gateway/services.php @@ -117,7 +117,8 @@ return array( 'wcgateway.disabler' => static function ( ContainerInterface $container ): DisableGateways { $session_handler = $container->get( 'session.handler' ); $settings = $container->get( 'wcgateway.settings' ); - return new DisableGateways( $session_handler, $settings ); + $subscription_helper = $container->get( 'subscription.helper' ); + return new DisableGateways( $session_handler, $settings, $subscription_helper ); }, 'wcgateway.is-wc-payments-page' => static function ( ContainerInterface $container ): bool { $page = isset( $_GET['page'] ) ? sanitize_text_field( wp_unslash( $_GET['page'] ) ) : ''; diff --git a/modules/ppcp-wc-gateway/src/Checkout/DisableGateways.php b/modules/ppcp-wc-gateway/src/Checkout/DisableGateways.php index a29c11674..cf4a7291d 100644 --- a/modules/ppcp-wc-gateway/src/Checkout/DisableGateways.php +++ b/modules/ppcp-wc-gateway/src/Checkout/DisableGateways.php @@ -10,6 +10,7 @@ declare(strict_types=1); namespace WooCommerce\PayPalCommerce\WcGateway\Checkout; use WooCommerce\PayPalCommerce\Session\SessionHandler; +use WooCommerce\PayPalCommerce\Subscription\Helper\SubscriptionHelper; use WooCommerce\PayPalCommerce\WcGateway\Gateway\CreditCardGateway; use WooCommerce\PayPalCommerce\WcGateway\Gateway\PayPalGateway; use Psr\Container\ContainerInterface; @@ -19,7 +20,6 @@ use Psr\Container\ContainerInterface; */ class DisableGateways { - /** * The Session Handler. * @@ -34,19 +34,29 @@ class DisableGateways { */ private $settings; + /** + * The subscription helper + * + * @var SubscriptionHelper + */ + private $subscription_helper; + /** * DisableGateways constructor. * * @param SessionHandler $session_handler The Session Handler. * @param ContainerInterface $settings The Settings. + * @param SubscriptionHelper $subscription_helper The subscription helper. */ public function __construct( SessionHandler $session_handler, - ContainerInterface $settings + ContainerInterface $settings, + SubscriptionHelper $subscription_helper ) { - $this->session_handler = $session_handler; - $this->settings = $settings; + $this->session_handler = $session_handler; + $this->settings = $settings; + $this->subscription_helper = $subscription_helper; } /** @@ -100,6 +110,10 @@ class DisableGateways { return true; } + if ( $this->subscription_helper->cart_contains_subscription() && ! is_user_logged_in() ) { + return true; + } + return false; }