Get variation plan id from cart in checkout page

This commit is contained in:
Emili Castells Guasch 2024-04-12 16:07:39 +02:00
parent ffe3a0b958
commit a2e0f68f1b
4 changed files with 33 additions and 3 deletions

View file

@ -12,7 +12,7 @@ class CheckoutActionHandler {
this.spinner = spinner;
}
subscriptionsConfiguration() {
subscriptionsConfiguration(subscription_plan) {
return {
createSubscription: async (data, actions) => {
try {
@ -22,7 +22,7 @@ class CheckoutActionHandler {
}
return actions.subscription.create({
'plan_id': this.config.subscription_plan_id
'plan_id': subscription_plan
});
},
onApprove: (data, actions) => {

View file

@ -106,7 +106,11 @@ class CheckoutBootstap {
PayPalCommerceGateway.data_client_id.has_subscriptions
&& PayPalCommerceGateway.data_client_id.paypal_subscriptions_enabled
) {
this.renderer.render(actionHandler.subscriptionsConfiguration(), {}, actionHandler.configuration());
let subscription_plan_id = PayPalCommerceGateway.subscription_plan_id
if(PayPalCommerceGateway.variable_paypal_subscription_variation_from_cart !== '') {
subscription_plan_id = PayPalCommerceGateway.variable_paypal_subscription_variation_from_cart
}
this.renderer.render(actionHandler.subscriptionsConfiguration(subscription_plan_id), {}, actionHandler.configuration());
if(!PayPalCommerceGateway.subscription_product_allowed) {
this.gateway.button.is_disabled = true;

View file

@ -1111,6 +1111,7 @@ document.querySelector("#payment").before(document.querySelector("#ppcp-messages
'subscription_plan_id' => $this->subscription_helper->paypal_subscription_id(),
'vault_v3_enabled' => $this->vault_v3_enabled,
'variable_paypal_subscription_variations' => $this->subscription_helper->variable_paypal_subscription_variations(),
'variable_paypal_subscription_variation_from_cart' => $this->subscription_helper->paypal_subscription_variation_from_cart(),
'subscription_product_allowed' => $this->subscription_helper->checkout_subscription_product_allowed(),
'locations_with_subscription_product' => $this->subscription_helper->locations_with_subscription_product(),
'enforce_vault' => $this->has_subscriptions(),