From 7652bc8fea28cec78ac590cc8490ff3a3090903f Mon Sep 17 00:00:00 2001
From: Philipp Stracker
Date: Tue, 25 Mar 2025 17:29:12 +0100
Subject: [PATCH] =?UTF-8?q?=F0=9F=A7=91=E2=80=8D=F0=9F=92=BB=20Add=20a=20t?=
=?UTF-8?q?emporary=20branded-only=20simulation=20mode?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../resources/js/data/common/selectors.js | 5 ++++-
modules/ppcp-settings/resources/js/data/debug.js | 10 ++++++++++
modules/ppcp-settings/src/Data/GeneralSettings.php | 9 +++++++++
3 files changed, 23 insertions(+), 1 deletion(-)
diff --git a/modules/ppcp-settings/resources/js/data/common/selectors.js b/modules/ppcp-settings/resources/js/data/common/selectors.js
index 77848ff26..9ab055d61 100644
--- a/modules/ppcp-settings/resources/js/data/common/selectors.js
+++ b/modules/ppcp-settings/resources/js/data/common/selectors.js
@@ -44,7 +44,10 @@ export const wooSettings = ( state ) => {
const settings = getState( state ).wooSettings || EMPTY_OBJ;
// For development and testing. Remove this eventually!
- const simulateBrandedOnly = localStorage.getItem( 'simulate-branded-only' );
+ const simulateBrandedOnly = document.cookie
+ .split( '; ' )
+ .find( ( row ) => row.startsWith( 'simulate-branded-only=' ) )
+ ?.split( '=' )[ 1 ];
/**
* The "own-brand-only" experience is determined on server-side, based on the installation path.
diff --git a/modules/ppcp-settings/resources/js/data/debug.js b/modules/ppcp-settings/resources/js/data/debug.js
index 286285892..c6cf536c3 100644
--- a/modules/ppcp-settings/resources/js/data/debug.js
+++ b/modules/ppcp-settings/resources/js/data/debug.js
@@ -168,6 +168,16 @@ export const addDebugTools = ( context, modules ) => {
onboarding.persist();
};
+ /**
+ * Sets a cookie to simulate the branded-only experience.
+ * @param {boolean} value - Whether to simulate branded-only experience.
+ */
+ debugApi.simulateBrandedOnly = ( value ) => {
+ const expirationDate = new Date( Date.now() + 3600000 ).toUTCString();
+ document.cookie = `simulate-branded-only=${ value }; expires=${ expirationDate }; path=/`;
+ window.location.reload();
+ };
+
// Expose original debug API.
Object.assign( context, debugApi );
};
diff --git a/modules/ppcp-settings/src/Data/GeneralSettings.php b/modules/ppcp-settings/src/Data/GeneralSettings.php
index a26703c30..7cbb7555b 100644
--- a/modules/ppcp-settings/src/Data/GeneralSettings.php
+++ b/modules/ppcp-settings/src/Data/GeneralSettings.php
@@ -306,6 +306,15 @@ class GeneralSettings extends AbstractDataModel {
* @return bool
*/
public function own_brand_only() : bool {
+ // Temporary dev/test mode.
+ $simulate_cookie = sanitize_key( wp_unslash( $_COOKIE['simulate-branded-only'] ?? '' ) );
+
+ if ( $simulate_cookie === 'true' ) {
+ return true;
+ } elseif ( $simulate_cookie === 'false' ) {
+ return false;
+ }
+
$brand_only_paths = array(
InstallationPathEnum::CORE_PROFILER,
InstallationPathEnum::PAYMENT_SETTINGS,