Hide checkout layout settings when using separate card button

This commit is contained in:
Alex P 2022-11-15 18:21:46 +02:00
parent c87ae7a050
commit 3e66958880
No known key found for this signature in database
GPG key ID: 54487A734A204D71
2 changed files with 17 additions and 2 deletions

View file

@ -2,6 +2,7 @@ import { loadScript } from "@paypal/paypal-js";
import {debounce} from "./helper/debounce"; import {debounce} from "./helper/debounce";
import Renderer from '../../../ppcp-button/resources/js/modules/Renderer/Renderer' import Renderer from '../../../ppcp-button/resources/js/modules/Renderer/Renderer'
import MessageRenderer from "../../../ppcp-button/resources/js/modules/Renderer/MessageRenderer"; import MessageRenderer from "../../../ppcp-button/resources/js/modules/Renderer/MessageRenderer";
import {setVisibleByClass} from "../../../ppcp-button/resources/js/modules/Helper/Hiding"
;document.addEventListener( ;document.addEventListener(
'DOMContentLoaded', '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) { function createButtonPreview(settingsCallback) {
const render = (settings) => { const render = (settings) => {
const wrapper = document.querySelector(settings.button.wrapper); const wrapper = document.querySelector(settings.button.wrapper);
@ -95,7 +103,8 @@ import MessageRenderer from "../../../ppcp-button/resources/js/modules/Renderer/
} }
function getButtonSettings(wrapperSelector, fields) { 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 = { const style = {
'color': jQuery(fields['color']).val(), 'color': jQuery(fields['color']).val(),
'shape': jQuery(fields['shape']).val(), 'shape': jQuery(fields['shape']).val(),

View file

@ -442,6 +442,8 @@ return array(
$subscription_helper = $container->get( 'subscription.helper' ); $subscription_helper = $container->get( 'subscription.helper' );
assert( $subscription_helper instanceof SubscriptionHelper ); assert( $subscription_helper instanceof SubscriptionHelper );
$has_enabled_separate_button_gateways = $container->get( 'wcgateway.settings.has_enabled_separate_button_gateways' );
$fields = array( $fields = array(
'checkout_settings_heading' => array( 'checkout_settings_heading' => array(
'heading' => __( 'Standard Payments Settings', 'woocommerce-paypal-payments' ), 'heading' => __( 'Standard Payments Settings', 'woocommerce-paypal-payments' ),
@ -739,7 +741,7 @@ return array(
'button_layout' => array( 'button_layout' => array(
'title' => __( 'Button Layout', 'woocommerce-paypal-payments' ), 'title' => __( 'Button Layout', 'woocommerce-paypal-payments' ),
'type' => 'select', 'type' => 'select',
'class' => array(), 'classes' => $has_enabled_separate_button_gateways ? array( 'hide' ) : array(),
'input_class' => array( 'wc-enhanced-select' ), 'input_class' => array( 'wc-enhanced-select' ),
'default' => 'vertical', 'default' => 'vertical',
'desc_tip' => true, 'desc_tip' => true,
@ -1745,6 +1747,10 @@ return array(
(bool) $settings->get( 'allow_card_button_gateway' ) : (bool) $settings->get( 'allow_card_button_gateway' ) :
$container->get( 'wcgateway.settings.allow_card_button_gateway.default' ); $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 { 'order-tracking.is-tracking-available' => static function ( ContainerInterface $container ): bool {
try { try {
$bearer = $container->get( 'api.bearer' ); $bearer = $container->get( 'api.bearer' );