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,