From 362d6fb2e20ffacb9748a7f71e7c9e7119fc28a2 Mon Sep 17 00:00:00 2001 From: Philipp Stracker Date: Tue, 25 Mar 2025 21:40:56 +0100 Subject: [PATCH] =?UTF-8?q?=F0=9F=91=94=20Apply=20branded-only=20limitatio?= =?UTF-8?q?ns=20via=20new=20filters?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/ppcp-settings/src/SettingsModule.php | 26 ++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/modules/ppcp-settings/src/SettingsModule.php b/modules/ppcp-settings/src/SettingsModule.php index d04a9ee96..a19de41f7 100644 --- a/modules/ppcp-settings/src/SettingsModule.php +++ b/modules/ppcp-settings/src/SettingsModule.php @@ -174,6 +174,8 @@ class SettingsModule implements ServiceModule, ExecutableModule { } ); + $this->apply_branded_only_limitations( $container ); + add_action( 'admin_enqueue_scripts', /** @@ -638,6 +640,30 @@ class SettingsModule implements ServiceModule, ExecutableModule { return true; } + /** + * Checks the branded-only state and applies relevant site-wide feature limitations, if needed. + * + * @param ContainerInterface $container The DI container provider. + * @return void + */ + protected function apply_branded_only_limitations( ContainerInterface $container ) : void { + $settings = $container->get( 'settings.data.general' ); + assert( $settings instanceof GeneralSettings ); + + if ( ! $settings->own_brand_only() ) { + return; + } + + /** + * In branded-only mode, we completely disable all white label features. + */ + add_filter( 'woocommerce_paypal_payments_is_eligible_for_applepay', '__return_false' ); + add_filter( 'woocommerce_paypal_payments_is_eligible_for_googlepay', '__return_false' ); + add_filter( 'woocommerce_paypal_payments_is_eligible_for_axo', '__return_false' ); + add_filter( 'woocommerce_paypal_payments_is_eligible_for_save_payment_methods', '__return_false' ); + add_filter( 'woocommerce_paypal_payments_is_eligible_for_card_fields', '__return_false' ); + } + /** * Outputs the settings page header (title and back-link). *