From b08c6f671ac28feb68de2e1257cdef88da108b4e Mon Sep 17 00:00:00 2001 From: Emili Castells Guasch Date: Fri, 24 Jan 2025 13:46:59 +0100 Subject: [PATCH] Add filter to register standrard card button gateway programmatically --- modules/ppcp-settings/src/SettingsModule.php | 2 +- modules/ppcp-wc-gateway/services.php | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/modules/ppcp-settings/src/SettingsModule.php b/modules/ppcp-settings/src/SettingsModule.php index dcb4b22fd4..0b46cfdbf6 100644 --- a/modules/ppcp-settings/src/SettingsModule.php +++ b/modules/ppcp-settings/src/SettingsModule.php @@ -297,7 +297,7 @@ function( array $payment_methods ) use ( $container ) : array { assert( $dcc_applies instanceof DCCApplies ); // Unset BCDC if merchant is eligible for ACDC. - if ( $dcc_product_status->dcc_is_active() ) { + if ( $dcc_product_status->dcc_is_active() && ! $container->get( 'wcgateway.settings.allow_card_button_gateway' ) ) { unset( $payment_methods[ CardButtonGateway::ID ] ); } diff --git a/modules/ppcp-wc-gateway/services.php b/modules/ppcp-wc-gateway/services.php index e17c1077dd..1bac9b14eb 100644 --- a/modules/ppcp-wc-gateway/services.php +++ b/modules/ppcp-wc-gateway/services.php @@ -1659,9 +1659,12 @@ static function ( ContainerInterface $container ): string { $settings = $container->get( 'wcgateway.settings' ); assert( $settings instanceof ContainerInterface ); - return $settings->has( 'allow_card_button_gateway' ) ? + return apply_filters( + 'woocommerce_paypal_payments_enable_standard_card_button_gateway_settings', + $settings->has( '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' );