From 71c19d8034cd534c2d035588ffa05a2674bb14ab Mon Sep 17 00:00:00 2001 From: Philipp Stracker Date: Fri, 29 Nov 2024 11:59:48 +0100 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20Always=20show=20smart=20buttons=20i?= =?UTF-8?q?n=20=E2=80=98preview=E2=80=99=20context?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../resources/js/modules/Renderer/Renderer.js | 5 +++++ .../ppcp-wc-gateway/resources/js/gateway-settings.js | 12 +++++++++--- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/modules/ppcp-button/resources/js/modules/Renderer/Renderer.js b/modules/ppcp-button/resources/js/modules/Renderer/Renderer.js index f5969a670..0a8c8fa9d 100644 --- a/modules/ppcp-button/resources/js/modules/Renderer/Renderer.js +++ b/modules/ppcp-button/resources/js/modules/Renderer/Renderer.js @@ -7,6 +7,7 @@ import { handleShippingOptionsChange, handleShippingAddressChange, } from '../Helper/ShippingHandler.js'; +import { PaymentContext } from '../Helper/CheckoutMethodState'; class Renderer { constructor( @@ -35,6 +36,10 @@ class Renderer { * @return {boolean} True, if smart buttons are present on the page. */ get useSmartButtons() { + if ( PaymentContext.Preview === this.defaultSettings?.context ) { + return true; + } + const components = this.defaultSettings?.url_params?.components || ''; return components.split( ',' ).includes( 'buttons' ); diff --git a/modules/ppcp-wc-gateway/resources/js/gateway-settings.js b/modules/ppcp-wc-gateway/resources/js/gateway-settings.js index f7184999d..b9c11b486 100644 --- a/modules/ppcp-wc-gateway/resources/js/gateway-settings.js +++ b/modules/ppcp-wc-gateway/resources/js/gateway-settings.js @@ -11,6 +11,7 @@ import { isVisible, } from '../../../ppcp-button/resources/js/modules/Helper/Hiding'; import widgetBuilder from '../../../ppcp-button/resources/js/modules/Renderer/WidgetBuilder'; +import { PaymentContext } from '../../../ppcp-button/resources/js/modules/Helper/CheckoutMethodState'; document.addEventListener( 'DOMContentLoaded', () => { function disableAll( nodeList ) { @@ -134,7 +135,12 @@ document.addEventListener( 'DOMContentLoaded', () => { function createButtonPreview( settingsCallback ) { const render = ( settings ) => { - const { button, separate_buttons } = settings; + const previewSettings = { + context: PaymentContext.Preview, + ...settings, + }; + + const { button, separate_buttons } = previewSettings; const wrapperSelector = ( Object.values( separate_buttons )[ 0 ] ?? button )?.wrapper; @@ -147,7 +153,7 @@ document.addEventListener( 'DOMContentLoaded', () => { const renderer = new Renderer( null, - settings, + previewSettings, ( data, actions ) => actions.reject(), null ); @@ -156,7 +162,7 @@ document.addEventListener( 'DOMContentLoaded', () => { renderer.render( {} ); jQuery( document ).trigger( 'ppcp_paypal_render_preview', - settings + previewSettings ); } catch ( err ) { console.error( err );