From 4157bd40e63b869e0b1ad156a15fd7854a45f75e Mon Sep 17 00:00:00 2001 From: Filip Ilic Date: Wed, 24 Dec 2025 11:25:37 +0100 Subject: [PATCH 1/2] reverse onboarding filter logic --- classes/class-onboard-wizard.php | 16 ++++++++-------- tests/phpunit/test-class-onboard-wizard.php | 12 ++++++------ 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/classes/class-onboard-wizard.php b/classes/class-onboard-wizard.php index 61735969a..fa50f32d2 100644 --- a/classes/class-onboard-wizard.php +++ b/classes/class-onboard-wizard.php @@ -50,22 +50,22 @@ public function maybe_register_popover_hooks() { // 1. Privacy not yet accepted (new install, non-branded). // 2. Onboarding already in progress. // 3. Branded site (privacy auto-accepted, but still needs onboarding). - $is_branded = 0 !== (int) \progress_planner()->get_ui__branding()->get_branding_id(); - $skip_onboarding = \progress_planner()->is_privacy_policy_accepted() - && ! \get_option( 'prpl_onboard_progress', false ) - && ! $is_branded; + $is_branded = 0 !== (int) \progress_planner()->get_ui__branding()->get_branding_id(); + $show_onboarding = ! \progress_planner()->is_privacy_policy_accepted() + || \get_option( 'prpl_onboard_progress', false ) + || $is_branded; /** - * Filter whether to skip the onboarding wizard. + * Filter whether to show the onboarding wizard. * * Hosting integrations can use this filter to force showing * or hiding the onboarding wizard. * - * @param bool $skip_onboarding Whether to skip showing the onboarding wizard. + * @param bool $show_onboarding Whether to show the onboarding wizard. */ - $skip_onboarding = \apply_filters( 'progress_planner_skip_onboarding', $skip_onboarding ); + $show_onboarding = \apply_filters( 'progress_planner_show_onboarding', $show_onboarding ); - if ( $skip_onboarding ) { + if ( ! $show_onboarding ) { return; } diff --git a/tests/phpunit/test-class-onboard-wizard.php b/tests/phpunit/test-class-onboard-wizard.php index 57ea45d10..43b83a618 100644 --- a/tests/phpunit/test-class-onboard-wizard.php +++ b/tests/phpunit/test-class-onboard-wizard.php @@ -336,30 +336,30 @@ public function test_rest_pre_insert_attachment_passes_through_non_prpl() { } /** - * Test skip_onboarding filter. + * Test show_onboarding filter. * * @return void */ - public function test_skip_onboarding_filter() { + public function test_show_onboarding_filter() { // Set admin user. \wp_set_current_user( $this->admin_user_id ); // Ensure privacy is not accepted (would normally show onboarding). \delete_option( 'progress_planner_license_key' ); - // Add filter to skip onboarding. - \add_filter( 'progress_planner_skip_onboarding', '__return_true' ); + // Add filter to hide onboarding. + \add_filter( 'progress_planner_show_onboarding', '__return_false' ); $wizard = new Onboard_Wizard(); $wizard->maybe_register_popover_hooks(); - // Footer hooks should NOT be registered when filter skips onboarding. + // Footer hooks should NOT be registered when filter hides onboarding. $this->assertFalse( \has_action( 'wp_footer', [ $wizard, 'add_popover' ] ) ); // Remove filter. - \remove_filter( 'progress_planner_skip_onboarding', '__return_true' ); + \remove_filter( 'progress_planner_show_onboarding', '__return_false' ); } /** From 11f4edaa1ca7903fbf5584c5566467e03517103c Mon Sep 17 00:00:00 2001 From: Filip Ilic Date: Wed, 24 Dec 2025 11:34:30 +0100 Subject: [PATCH 2/2] fix-cs --- classes/class-onboard-wizard.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/classes/class-onboard-wizard.php b/classes/class-onboard-wizard.php index fa50f32d2..1b50183dc 100644 --- a/classes/class-onboard-wizard.php +++ b/classes/class-onboard-wizard.php @@ -50,8 +50,8 @@ public function maybe_register_popover_hooks() { // 1. Privacy not yet accepted (new install, non-branded). // 2. Onboarding already in progress. // 3. Branded site (privacy auto-accepted, but still needs onboarding). - $is_branded = 0 !== (int) \progress_planner()->get_ui__branding()->get_branding_id(); - $show_onboarding = ! \progress_planner()->is_privacy_policy_accepted() + $is_branded = 0 !== (int) \progress_planner()->get_ui__branding()->get_branding_id(); + $show_onboarding = ! \progress_planner()->is_privacy_policy_accepted() || \get_option( 'prpl_onboard_progress', false ) || $is_branded;