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 );