diff --git a/includes/Admin.php b/includes/Admin.php index ec4b873a..46e4aa21 100755 --- a/includes/Admin.php +++ b/includes/Admin.php @@ -398,15 +398,16 @@ public function activation_redirect() { } delete_option( 'tpc_maybe_run_onboarding' ); - wp_safe_redirect( - add_query_arg( - array( - 'page' => 'neve-onboarding', - 'show' => 'welcome', - ), - admin_url( 'admin.php' ) - ) - ); + + $query_args = array( 'page' => 'neve-onboarding' ); + + if ( defined( 'TI_ONBOARDING_DEFAULT_SITE' ) && TI_ONBOARDING_DEFAULT_SITE ) { + $query_args['site'] = sanitize_key( TI_ONBOARDING_DEFAULT_SITE ); + } else { + $query_args['show'] = 'welcome'; + } + + wp_safe_redirect( add_query_arg( $query_args, admin_url( 'admin.php' ) ) ); exit(); } diff --git a/onboarding/src/store/reducer.js b/onboarding/src/store/reducer.js index 051ac6cf..3c16f323 100644 --- a/onboarding/src/store/reducer.js +++ b/onboarding/src/store/reducer.js @@ -16,15 +16,32 @@ const initialLicense = licenseTIOB || { tier: 0, }; +const params = new URLSearchParams( window.location.search ); +const defaultSiteSlug = params.get( 'site' ); + +const findSiteBySlug = ( slug ) => { + const builders = onboarding?.sites?.sites || {}; + for ( const builder of Object.keys( builders ) ) { + if ( builders[ builder ]?.[ slug ] ) { + return builders[ builder ][ slug ]; + } + } + return null; +}; + +const defaultSite = defaultSiteSlug ? findSiteBySlug( defaultSiteSlug ) : null; + const initialState = { sites: onboarding.sites || {}, editor: selectedEditor, category: '', - currentSite: null, + currentSite: defaultSite, fetching: false, searchQuery: '', license: initialLicense, - onboardingStep: window.location.search.includes('show=welcome') ? 1 : 2, + onboardingStep: defaultSite + ? 3 + : ( window.location.search.includes('show=welcome') ? 1 : 2 ), userCustomSettings: { siteName: null, siteLogo: null,