diff --git a/modules/ppcp-settings/resources/js/data/common/hooks.js b/modules/ppcp-settings/resources/js/data/common/hooks.js index a000ad9c8..fbe6a4842 100644 --- a/modules/ppcp-settings/resources/js/data/common/hooks.js +++ b/modules/ppcp-settings/resources/js/data/common/hooks.js @@ -43,7 +43,11 @@ const useHooks = () => { const clientSecret = usePersistent( 'clientSecret' ); const isSandboxMode = usePersistent( 'useSandbox' ); const isManualConnectionMode = usePersistent( 'useManualConnection' ); - const flags = usePersistent( 'flags' ); + + const wooSettings = useSelect( + ( select ) => select( STORE_NAME ).wooSettings(), + [] + ); const savePersistent = async ( setter, value ) => { setter( value ); @@ -70,7 +74,7 @@ const useHooks = () => { }, connectViaSandbox, connectViaIdAndSecret, - flags, + wooSettings, }; }; @@ -113,7 +117,6 @@ export const useManualConnection = () => { }; export const useWooSettings = () => { - const { flags = {} } = useHooks(); - const { country, currency } = flags; - return { storeCountry: country, storeCurrency: currency }; + const { wooSettings } = useHooks(); + return wooSettings; }; diff --git a/modules/ppcp-settings/resources/js/data/common/reducer.js b/modules/ppcp-settings/resources/js/data/common/reducer.js index cdf7841f5..87c47127a 100644 --- a/modules/ppcp-settings/resources/js/data/common/reducer.js +++ b/modules/ppcp-settings/resources/js/data/common/reducer.js @@ -22,10 +22,6 @@ const defaultPersistent = { useManualConnection: false, clientId: '', clientSecret: '', - flags: { - country: '', - currency: '', - }, }; // Reducer logic. @@ -42,11 +38,18 @@ const commonReducer = createReducer( defaultTransient, defaultPersistent, { [ ACTION_TYPES.SET_PERSISTENT ]: ( state, action ) => setPersistent( state, action ), - [ ACTION_TYPES.HYDRATE ]: ( state, payload ) => - setPersistent( state, { - ...payload.data, - flags: payload.flags, - } ), + [ ACTION_TYPES.HYDRATE ]: ( state, payload ) => { + const newState = setPersistent( state, payload.data ); + + if ( payload.wooSettings ) { + newState.wooSettings = { + ...newState.wooSettings, + ...payload.wooSettings, + }; + } + + return newState; + }, } ); export default commonReducer; diff --git a/modules/ppcp-settings/resources/js/data/common/selectors.js b/modules/ppcp-settings/resources/js/data/common/selectors.js index 14334fcf3..57620d0dc 100644 --- a/modules/ppcp-settings/resources/js/data/common/selectors.js +++ b/modules/ppcp-settings/resources/js/data/common/selectors.js @@ -16,6 +16,10 @@ export const persistentData = ( state ) => { }; export const transientData = ( state ) => { - const { data, ...transientState } = getState( state ); + const { data, wooSettings, ...transientState } = getState( state ); // ← extract the wooSettings, to ensure they are not part of the "transientState" collection. return transientState || EMPTY_OBJ; }; + +export const wooSettings = ( state ) => { + return getState( state ).wooSettings || EMPTY_OBJ; +}; diff --git a/modules/ppcp-settings/src/Data/CommonSettings.php b/modules/ppcp-settings/src/Data/CommonSettings.php index f480e7c81..f49e2895b 100644 --- a/modules/ppcp-settings/src/Data/CommonSettings.php +++ b/modules/ppcp-settings/src/Data/CommonSettings.php @@ -34,7 +34,7 @@ class CommonSettings extends AbstractDataModel { * * @var array */ - protected array $flags = array(); + protected array $woo_settings = array(); /** * Constructor. @@ -44,8 +44,8 @@ class CommonSettings extends AbstractDataModel { */ public function __construct( string $country, string $currency ) { parent::__construct(); - $this->flags['country'] = $country; - $this->flags['currency'] = $currency; + $this->woo_settings['country'] = $country; + $this->woo_settings['currency'] = $currency; } /** @@ -141,7 +141,7 @@ class CommonSettings extends AbstractDataModel { * * @return array */ - public function get_flags() : array { - return $this->flags; + public function get_woo_settings() : array { + return $this->woo_settings; } } diff --git a/modules/ppcp-settings/src/Endpoint/CommonRestEndpoint.php b/modules/ppcp-settings/src/Endpoint/CommonRestEndpoint.php index 0c197ef67..bebf9980c 100644 --- a/modules/ppcp-settings/src/Endpoint/CommonRestEndpoint.php +++ b/modules/ppcp-settings/src/Endpoint/CommonRestEndpoint.php @@ -65,12 +65,12 @@ class CommonRestEndpoint extends RestEndpoint { * * @var array */ - private array $flag_map = array( + private array $woo_settings_map = array( 'country' => array( - 'js_name' => 'country', + 'js_name' => 'storeCountry', ), 'currency' => array( - 'js_name' => 'currency', + 'js_name' => 'storeCurrency', ), ); @@ -123,15 +123,15 @@ class CommonRestEndpoint extends RestEndpoint { $this->field_map ); - $js_flags = $this->sanitize_for_javascript( - $this->settings->get_flags(), - $this->flag_map + $js_woo_settings = $this->sanitize_for_javascript( + $this->settings->get_woo_settings(), + $this->woo_settings_map ); return $this->return_success( $js_data, array( - 'flags' => $js_flags, + 'wooSettings' => $js_woo_settings, ) ); }