diff --git a/modules/ppcp-button/resources/js/modules/Renderer/CardFieldsRenderer.js b/modules/ppcp-button/resources/js/modules/Renderer/CardFieldsRenderer.js index 4cf07a0bf..3287c7492 100644 --- a/modules/ppcp-button/resources/js/modules/Renderer/CardFieldsRenderer.js +++ b/modules/ppcp-button/resources/js/modules/Renderer/CardFieldsRenderer.js @@ -112,6 +112,14 @@ class CardFieldsRenderer { show(buttonSelector); + if(this.defaultConfig.cart_contains_subscription) { + const saveToAccount = document.querySelector('#wc-ppcp-credit-card-gateway-new-payment-method'); + if(saveToAccount) { + saveToAccount.checked = true; + saveToAccount.disabled = true; + } + } + document.querySelector(buttonSelector).addEventListener("click", (event) => { event.preventDefault(); this.spinner.block(); diff --git a/modules/ppcp-button/src/Assets/SmartButton.php b/modules/ppcp-button/src/Assets/SmartButton.php index 24393d6b4..2f6a24781 100644 --- a/modules/ppcp-button/src/Assets/SmartButton.php +++ b/modules/ppcp-button/src/Assets/SmartButton.php @@ -1056,6 +1056,7 @@ document.querySelector("#payment").before(document.querySelector("#ppcp-messages 'endpoint' => \WC_AJAX::get_endpoint( CartScriptParamsEndpoint::ENDPOINT ), ), ), + 'cart_contains_subscription' => $this->subscription_helper->cart_contains_subscription(), 'subscription_plan_id' => $this->subscription_helper->paypal_subscription_id(), 'variable_paypal_subscription_variations' => $this->subscription_helper->variable_paypal_subscription_variations(), 'subscription_product_allowed' => $this->subscription_helper->checkout_subscription_product_allowed(), diff --git a/modules/ppcp-save-payment-methods/resources/js/add-payment-method.js b/modules/ppcp-save-payment-methods/resources/js/add-payment-method.js index 6c2c51783..8aca64f7c 100644 --- a/modules/ppcp-save-payment-methods/resources/js/add-payment-method.js +++ b/modules/ppcp-save-payment-methods/resources/js/add-payment-method.js @@ -28,6 +28,14 @@ document.addEventListener( init() }); + if(ppcp_add_payment_method.is_subscription_change_payment_page) { + const saveToAccount = document.querySelector('#wc-ppcp-credit-card-gateway-new-payment-method'); + if(saveToAccount) { + saveToAccount.checked = true; + saveToAccount.disabled = true; + } + } + setTimeout(() => { loadScript({ clientId: ppcp_add_payment_method.client_id, diff --git a/modules/ppcp-wc-subscriptions/src/WcSubscriptionsModule.php b/modules/ppcp-wc-subscriptions/src/WcSubscriptionsModule.php index 1d86d8832..6e3e25937 100644 --- a/modules/ppcp-wc-subscriptions/src/WcSubscriptionsModule.php +++ b/modules/ppcp-wc-subscriptions/src/WcSubscriptionsModule.php @@ -152,8 +152,11 @@ class WcSubscriptionsModule implements ModuleInterface { add_filter( 'woocommerce_available_payment_gateways', - function( array $methods ): array { - if ( ! is_wc_endpoint_url( 'order-pay' ) ) { + function( array $methods ) use ( $c ) : array { + if ( + ! is_wc_endpoint_url( 'order-pay' ) + || $c->has( 'save-payment-methods.eligible' ) && $c->get( 'save-payment-methods.eligible' ) + ) { return $methods; } @@ -261,18 +264,15 @@ class WcSubscriptionsModule implements ModuleInterface { && $subscription_helper->is_subscription_change_payment() ) { $tokens = WC_Payment_Tokens::get_customer_tokens( get_current_user_id(), PayPalGateway::ID ); - $output = sprintf( - '
'; + $output .= ''; return $output; }