🐞 Fix JS error during PayLater preview

Incorrect selector for `payLaterButtonPreview` caused the preview to fail when the “Enable Pay Later Button” was unchecked during page load.
This commit is contained in:
Philipp Stracker 2024-07-01 14:12:31 +02:00
parent c0e3dd7be0
commit 5307225ef3
No known key found for this signature in database

View file

@ -23,25 +23,7 @@ document.addEventListener(
const payLaterButtonInput = document.querySelector('#ppcp-pay_later_button_enabled');
if (payLaterButtonInput) {
const payLaterButtonPreview = document.querySelector('.ppcp-button-preview.pay-later');
if (!payLaterButtonInput.checked) {
payLaterButtonPreview.classList.add('disabled')
}
if (payLaterButtonInput.classList.contains('ppcp-disabled-checkbox')) {
payLaterButtonPreview.style.display = 'none';
}
payLaterButtonInput.addEventListener('click', () => {
payLaterButtonPreview.classList.remove('disabled')
if (!payLaterButtonInput.checked) {
payLaterButtonPreview.classList.add('disabled')
}
});
}
initializePayLaterPreview()
const separateCardButtonCheckbox = document.querySelector('#ppcp-allow_card_button_gateway');
if (separateCardButtonCheckbox) {
@ -76,6 +58,35 @@ document.addEventListener(
}
});
function initializePayLaterPreview() {
if (!payLaterButtonInput) {
return;
}
const payLaterButtonPreview = document.querySelector(
'.ppcp-button-preview[data-ppcp-preview-block="paylater"]');
if (!payLaterButtonPreview) {
return;
}
if (!payLaterButtonInput.checked) {
payLaterButtonPreview.classList.add('disabled');
}
if (payLaterButtonInput.classList.contains('ppcp-disabled-checkbox')) {
payLaterButtonPreview.style.display = 'none';
}
payLaterButtonInput.addEventListener('click', () => {
payLaterButtonPreview.classList.remove('disabled');
if (!payLaterButtonInput.checked) {
payLaterButtonPreview.classList.add('disabled');
}
});
}
function createButtonPreview(settingsCallback) {
const render = (settings) => {
const wrapperSelector = Object.values(settings.separate_buttons).length > 0 ? Object.values(settings.separate_buttons)[0].wrapper : settings.button.wrapper;