From 0553ea62bffa089c2d39971da5c5cef2b40a646d Mon Sep 17 00:00:00 2001 From: Alex P Date: Fri, 20 Aug 2021 17:47:32 +0300 Subject: [PATCH] Send 3ds contingency in js --- .../js/modules/Renderer/CreditCardRenderer.js | 2 +- .../ppcp-button/src/Assets/class-smartbutton.php | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/modules/ppcp-button/resources/js/modules/Renderer/CreditCardRenderer.js b/modules/ppcp-button/resources/js/modules/Renderer/CreditCardRenderer.js index dc5035383..a4663ac29 100644 --- a/modules/ppcp-button/resources/js/modules/Renderer/CreditCardRenderer.js +++ b/modules/ppcp-button/resources/js/modules/Renderer/CreditCardRenderer.js @@ -104,7 +104,7 @@ class CreditCardRenderer { const vault = document.getElementById('ppcp-credit-card-vault') ? document.getElementById('ppcp-credit-card-vault').checked : save_card; hostedFields.submit({ - contingencies: ['SCA_WHEN_REQUIRED'], + contingencies: [this.defaultConfig.hosted_fields.contingency], vault: vault }).then((payload) => { payload.orderID = payload.orderId; diff --git a/modules/ppcp-button/src/Assets/class-smartbutton.php b/modules/ppcp-button/src/Assets/class-smartbutton.php index 5f3fc0244..a3585567d 100644 --- a/modules/ppcp-button/src/Assets/class-smartbutton.php +++ b/modules/ppcp-button/src/Assets/class-smartbutton.php @@ -601,6 +601,19 @@ class SmartButton implements SmartButtonInterface { return $this->subscription_helper->cart_contains_subscription(); } + /** + * Retrieves the 3D Secure contingency settings. + * + * @return string + */ + private function get_3ds_contingency(): string { + if ( $this->settings->has( '3d_secure_contingency' ) ) { + return $this->settings->get( '3d_secure_contingency' ); + } + + return 'SCA_WHEN_REQUIRED'; + } + /** * The localized data for the smart button. * @@ -677,6 +690,7 @@ class SmartButton implements SmartButtonInterface { ), ), 'valid_cards' => $this->dcc_applies->valid_cards(), + 'contingency' => $this->get_3ds_contingency(), ), 'messages' => $this->message_values(), 'labels' => array(