get( 'adminAssistant.provider', 'aisentic' ); $api_key = $settings->get( 'llmProviders.aisentic.apiKey', '' ); if ( in_array( $provider, [ 'aisentic', '', null ], true ) && empty( $api_key ) ) { add_action( 'admin_init', [ __CLASS__, 'handle_onboarding_redirect' ], 1 ); } } } /** * Handle redirect to onboarding page * * @return void */ public static function handle_onboarding_redirect(): void { remove_action( 'admin_init', [ __CLASS__, 'handle_onboarding_redirect' ], 1 ); if ( current_user_can( 'manage_options' ) ) { // Read-only check of the current admin screen to steer a one-time onboarding redirect — no form data is processed, so nonce verification is not applicable. $page = isset( $_GET['page'] ) ? sanitize_text_field( wp_unslash( $_GET['page'] ) ) : ''; // phpcs:ignore WordPress.Security.NonceVerification.Recommended if ( 'aisentic' !== $page ) { wp_safe_redirect( admin_url( 'admin.php?page=aisentic#/onboarding' ) ); exit; } } } }