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).
*