From 863cfc790eb88b12d2b496c997e894ea1334002e Mon Sep 17 00:00:00 2001 From: Danae Millan Date: Fri, 24 Nov 2023 11:17:42 +0100 Subject: [PATCH] Check whether the dom elements exist before changing their attributes --- client/classic/upe/payment-processing.js | 29 ++++++++++++------------ 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/client/classic/upe/payment-processing.js b/client/classic/upe/payment-processing.js index df2d98aa80..916c33c1a1 100644 --- a/client/classic/upe/payment-processing.js +++ b/client/classic/upe/payment-processing.js @@ -243,20 +243,21 @@ function setSelectedUPEPaymentType( paymentType ) { // Show or hide save payment information checkbox function showNewPaymentMethodCheckbox( show = true ) { - if ( show ) { - document.querySelector( - '.woocommerce-SavedPaymentMethods-saveNew' - ).style.visibility = 'visible'; - } else { - document.querySelector( - '.woocommerce-SavedPaymentMethods-saveNew' - ).style.visibility = 'hidden'; - document - .querySelector( 'input#wc-stripe-new-payment-method' ) - .setAttribute( 'checked', false ); - document - .querySelector( 'input#wc-stripe-new-payment-method' ) - .dispatchEvent( new Event( 'change' ) ); + const saveCardElement = document.querySelector( + '.woocommerce-SavedPaymentMethods-saveNew' + ); + + if ( saveCardElement ) { + saveCardElement.style.visibility = show ? 'visible' : 'hidden'; + } + + const stripeSaveCardCheckbox = document.querySelector( + 'input#wc-stripe-new-payment-method' + ); + + if ( ! show && stripeSaveCardCheckbox ) { + stripeSaveCardCheckbox.setAttribute( 'checked', false ); + stripeSaveCardCheckbox.dispatchEvent( new Event( 'change' ) ); } }