From 282d1a73e07ed296375b3c2d035189ed0e39f570 Mon Sep 17 00:00:00 2001
From: Pedro Silva
Date: Wed, 3 Jan 2024 11:13:01 +0000
Subject: [PATCH] Rollback button early validation and add support for Credit
Card Gateway.
---
.../js/modules/ActionHandler/CheckoutActionHandler.js | 10 ++--------
.../js/modules/Renderer/CardFieldsRenderer.js | 5 -----
.../ppcp-button/src/Endpoint/CreateOrderEndpoint.php | 2 +-
3 files changed, 3 insertions(+), 14 deletions(-)
diff --git a/modules/ppcp-button/resources/js/modules/ActionHandler/CheckoutActionHandler.js b/modules/ppcp-button/resources/js/modules/ActionHandler/CheckoutActionHandler.js
index 75b5f9848..da0ca7a4f 100644
--- a/modules/ppcp-button/resources/js/modules/ActionHandler/CheckoutActionHandler.js
+++ b/modules/ppcp-button/resources/js/modules/ActionHandler/CheckoutActionHandler.js
@@ -18,7 +18,7 @@ class CheckoutActionHandler {
try {
await validateCheckoutForm(this.config);
} catch (error) {
- throw { type: 'form-validation-error' };
+ throw {type: 'form-validation-error'};
}
return actions.subscription.create({
@@ -49,12 +49,6 @@ class CheckoutActionHandler {
configuration() {
const spinner = this.spinner;
const createOrder = async (data, actions) => {
- try {
- await validateCheckoutForm(this.config);
- } catch (error) {
- throw { type: 'form-validation-error' };
- }
-
const payer = payerData();
const bnCode = typeof this.config.bn_codes[this.config.context] !== 'undefined' ?
this.config.bn_codes[this.config.context] : '';
@@ -142,7 +136,7 @@ class CheckoutActionHandler {
console.error(err);
spinner.unblock();
- if (err && (err.type === 'create-order-error' || err.type === 'form-validation-error')) {
+ if (err && (err.type === 'create-order-error')) {
return;
}
diff --git a/modules/ppcp-button/resources/js/modules/Renderer/CardFieldsRenderer.js b/modules/ppcp-button/resources/js/modules/Renderer/CardFieldsRenderer.js
index babb2b4fc..13f37cda0 100644
--- a/modules/ppcp-button/resources/js/modules/Renderer/CardFieldsRenderer.js
+++ b/modules/ppcp-button/resources/js/modules/Renderer/CardFieldsRenderer.js
@@ -120,11 +120,6 @@ class CardFieldsRenderer {
.catch((error) => {
this.spinner.unblock();
console.error(error)
-
- if (error.type === 'form-validation-error') {
- return;
- }
-
this.errorHandler.message(this.defaultConfig.hosted_fields.labels.fields_not_valid);
});
});
diff --git a/modules/ppcp-button/src/Endpoint/CreateOrderEndpoint.php b/modules/ppcp-button/src/Endpoint/CreateOrderEndpoint.php
index 2150b931f..ca34e59fb 100644
--- a/modules/ppcp-button/src/Endpoint/CreateOrderEndpoint.php
+++ b/modules/ppcp-button/src/Endpoint/CreateOrderEndpoint.php
@@ -294,7 +294,7 @@ class CreateOrderEndpoint implements EndpointInterface {
if ( $this->early_validation_enabled
&& $this->form
&& 'checkout' === $data['context']
- && in_array( $payment_method, array( PayPalGateway::ID, CardButtonGateway::ID ), true )
+ && in_array( $payment_method, array( PayPalGateway::ID, CardButtonGateway::ID, CreditCardGateway::ID ), true )
) {
$this->validate_form( $this->form );
}