From dcd830711827c6657f44ac56acf1acda95576a5f Mon Sep 17 00:00:00 2001
From: Philipp Stracker
Date: Wed, 26 Jun 2024 18:54:09 +0200
Subject: [PATCH] =?UTF-8?q?=E2=99=BB=EF=B8=8F=20Optional=20init=20value=20?=
=?UTF-8?q?for=20trigger=20selector?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../js/modules/Helper/MultistepCheckoutHelper.js | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)
diff --git a/modules/ppcp-button/resources/js/modules/Helper/MultistepCheckoutHelper.js b/modules/ppcp-button/resources/js/modules/Helper/MultistepCheckoutHelper.js
index 1bf843a94..5fa93244d 100644
--- a/modules/ppcp-button/resources/js/modules/Helper/MultistepCheckoutHelper.js
+++ b/modules/ppcp-button/resources/js/modules/Helper/MultistepCheckoutHelper.js
@@ -1,5 +1,7 @@
import { refreshButtons } from './ButtonRefreshHelper';
+const DEFAULT_TRIGGER_ELEMENT_SELECTOR = '.woocommerce-checkout-payment';
+
/**
* The MultistepCheckoutHelper class ensures the initialization of payment buttons
* on websites using a multistep checkout plugin. These plugins usually hide the
@@ -14,10 +16,10 @@ import { refreshButtons } from './ButtonRefreshHelper';
class MultistepCheckoutHelper {
/**
- * Configuration that defines the HTML selector for the component we are waiting to be visible.
+ * Selector that defines the HTML element we are waiting to become visible.
* @type {string}
*/
- #triggerElementSelector = '.woocommerce-checkout-payment';
+ #triggerElementSelector;
/**
* Interval (in milliseconds) in which the visibility of the trigger element is checked.
@@ -39,9 +41,11 @@ class MultistepCheckoutHelper {
/**
* @param {string} formSelector - Selector of the checkout form
+ * @param {string} triggerElementSelector - Optional. Selector of the dependant element.
*/
- constructor(formSelector) {
+ constructor(formSelector, triggerElementSelector = '') {
this.#formSelector = formSelector;
+ this.#triggerElementSelector = triggerElementSelector || DEFAULT_TRIGGER_ELEMENT_SELECTOR;
this.#intervalId = false;
/*