diff --git a/includes/class-modal-checkout.php b/includes/class-modal-checkout.php index 1fe35d05a..1adbfdffd 100644 --- a/includes/class-modal-checkout.php +++ b/includes/class-modal-checkout.php @@ -556,7 +556,10 @@ public static function enqueue_scripts() { plugins_url( 'dist/modalCheckout.js', \NEWSPACK_BLOCKS__PLUGIN_FILE ), $dependencies, \NEWSPACK_BLOCKS__VERSION, - true + [ + 'strategy' => 'async', + 'in_footer' => true, + ] ); wp_localize_script( 'newspack-blocks-modal-checkout', @@ -609,7 +612,10 @@ public static function enqueue_modal( $product_id = null ) { plugins_url( 'dist/modal.js', \NEWSPACK_BLOCKS__PLUGIN_FILE ), [], \NEWSPACK_BLOCKS__VERSION, - true + [ + 'strategy' => 'async', + 'in_footer' => true, + ] ); wp_localize_script( 'newspack-blocks-modal', diff --git a/src/modal-checkout/modal.js b/src/modal-checkout/modal.js index d03c4fb14..462538eeb 100644 --- a/src/modal-checkout/modal.js +++ b/src/modal-checkout/modal.js @@ -298,7 +298,7 @@ domReady( () => { form.classList.remove( 'modal-processing' ); // Set reader activation checkout data if available. - let data = {}; + const data = { is_pending_checkout: true }; if ( element.classList.contains( 'wpbnbd--platform-wc' ) ) { const frequency = formData.get( 'donation_frequency' ); let amount; @@ -315,24 +315,17 @@ domReady( () => { layout = 'frequency'; } - data = { - type: 'donate', - layout, - frequency, - amount, - other: formData.get( `donation_value_${ frequency }_other` ), - }; + data.type = 'donate'; + data.layout = layout; + data.frequency = frequency; + data.amount = amount; + data.other = formData.get( `donation_value_${ frequency }_other` ); } else { - data = { - type: 'checkout_button', - product_id: formData.get( 'product_id' ), - variation_id: formData.get( 'variation_id' ), - }; + data.type = 'checkout_button'; + data.product_id = formData.get( 'product_id' ); + data.variation_id = formData.get( 'variation_id' ); } - window?.newspackReaderActivation?.setCheckoutData?.( { - is_pending_checkout: true, - ...data, - } ); + window?.newspackReaderActivation?.setCheckoutData?.( data ); if ( typeof newspack_ras_config !== 'undefined' && @@ -414,6 +407,10 @@ domReady( () => { window.newspackReaderActivation.openAuthModal( { title: newspackBlocksModal.labels.auth_modal_title, callback: () => { + // Signal checkout registration. + form.appendChild( + createHiddenInput( newspackBlocksModal.checkout_registration_flag, '1' ) + ); triggerCheckout( form ); }, skipSuccess: true, @@ -492,10 +489,6 @@ domReady( () => { * @param {HTMLFormElement} form The form element. */ const triggerCheckout = form => { - // Signal checkout registration. - form.appendChild( - createHiddenInput( newspackBlocksModal.checkout_registration_flag, '1' ) - ); // form.submit does not trigger submit event listener, so we use requestSubmit. form.requestSubmit( form.querySelector( 'button[type="submit"]' ) ); } diff --git a/src/modal-checkout/utils.js b/src/modal-checkout/utils.js index 91006edde..85eacea9e 100644 --- a/src/modal-checkout/utils.js +++ b/src/modal-checkout/utils.js @@ -7,7 +7,7 @@ * @return {void} */ export function domReady( callback ) { - if ( typeof document === 'undefined' ) { + if ( typeof document === 'undefined' || typeof callback !== 'function' ) { return; } if (