diff --git a/modules/ppcp-wc-gateway/resources/js/gateway-settings.js b/modules/ppcp-wc-gateway/resources/js/gateway-settings.js index 241a5ba61..2d925a37c 100644 --- a/modules/ppcp-wc-gateway/resources/js/gateway-settings.js +++ b/modules/ppcp-wc-gateway/resources/js/gateway-settings.js @@ -2,6 +2,7 @@ import { loadScript } from "@paypal/paypal-js"; import {debounce} from "./helper/debounce"; import Renderer from '../../../ppcp-button/resources/js/modules/Renderer/Renderer' import MessageRenderer from "../../../ppcp-button/resources/js/modules/Renderer/MessageRenderer"; +import {setVisibleByClass} from "../../../ppcp-button/resources/js/modules/Helper/Hiding" ;document.addEventListener( 'DOMContentLoaded', @@ -40,6 +41,13 @@ import MessageRenderer from "../../../ppcp-button/resources/js/modules/Renderer/ }); } + const separateCardButtonCheckbox = document.querySelector('#ppcp-allow_card_button_gateway'); + if (separateCardButtonCheckbox) { + separateCardButtonCheckbox.addEventListener('change', () => { + setVisibleByClass('#field-button_layout', !separateCardButtonCheckbox.checked, 'hide'); + }); + } + function createButtonPreview(settingsCallback) { const render = (settings) => { const wrapper = document.querySelector(settings.button.wrapper); @@ -95,7 +103,8 @@ import MessageRenderer from "../../../ppcp-button/resources/js/modules/Renderer/ } function getButtonSettings(wrapperSelector, fields) { - const layout = jQuery(fields['layout']).val(); + const layoutElement = jQuery(fields['layout']); + const layout = (layoutElement.length && layoutElement.is(':visible')) ? layoutElement.val() : 'vertical'; const style = { 'color': jQuery(fields['color']).val(), 'shape': jQuery(fields['shape']).val(), diff --git a/modules/ppcp-wc-gateway/services.php b/modules/ppcp-wc-gateway/services.php index b7523646f..7591ba40b 100644 --- a/modules/ppcp-wc-gateway/services.php +++ b/modules/ppcp-wc-gateway/services.php @@ -442,6 +442,8 @@ return array( $subscription_helper = $container->get( 'subscription.helper' ); assert( $subscription_helper instanceof SubscriptionHelper ); + $has_enabled_separate_button_gateways = $container->get( 'wcgateway.settings.has_enabled_separate_button_gateways' ); + $fields = array( 'checkout_settings_heading' => array( 'heading' => __( 'Standard Payments Settings', 'woocommerce-paypal-payments' ), @@ -739,7 +741,7 @@ return array( 'button_layout' => array( 'title' => __( 'Button Layout', 'woocommerce-paypal-payments' ), 'type' => 'select', - 'class' => array(), + 'classes' => $has_enabled_separate_button_gateways ? array( 'hide' ) : array(), 'input_class' => array( 'wc-enhanced-select' ), 'default' => 'vertical', 'desc_tip' => true, @@ -1745,6 +1747,10 @@ return array( (bool) $settings->get( 'allow_card_button_gateway' ) : $container->get( 'wcgateway.settings.allow_card_button_gateway.default' ); }, + 'wcgateway.settings.has_enabled_separate_button_gateways' => static function ( ContainerInterface $container ): bool { + return (bool) $container->get( 'wcgateway.settings.allow_card_button_gateway' ); + }, + 'order-tracking.is-tracking-available' => static function ( ContainerInterface $container ): bool { try { $bearer = $container->get( 'api.bearer' );