From 6c1fced6ea33182210d3a499cdab35c7a572459e Mon Sep 17 00:00:00 2001 From: Matteo Enna Date: Tue, 16 Apr 2024 08:15:42 +0200 Subject: [PATCH 01/12] Do not show on the settings page and dismiss the pointer --- includes/admin/load.php | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/includes/admin/load.php b/includes/admin/load.php index 80171061c1..15062e0879 100644 --- a/includes/admin/load.php +++ b/includes/admin/load.php @@ -77,7 +77,16 @@ function perflab_render_settings_page() { * @param string $hook_suffix The current admin page. */ function perflab_admin_pointer( $hook_suffix ) { + $current_user = get_current_user_id(); + if ( ! in_array( $hook_suffix, array( 'index.php', 'plugins.php' ), true ) ) { + + // Do not show on the settings page and dismiss the pointer + if ( !empty( $_GET['page'] ) && $_GET['page'] === PERFLAB_SCREEN ) { + $dismissed[] = 'perflab-admin-pointer'; + update_user_meta( $current_user, 'dismissed_wp_pointers', implode( ',', $dismissed ) ); + } + return; } @@ -86,7 +95,6 @@ function perflab_admin_pointer( $hook_suffix ) { return; } - $current_user = get_current_user_id(); $dismissed = explode( ',', (string) get_user_meta( $current_user, 'dismissed_wp_pointers', true ) ); if ( in_array( 'perflab-admin-pointer', $dismissed, true ) ) { From 587f706c95d2029fecfd31421bce64369688fd67 Mon Sep 17 00:00:00 2001 From: Matteo Enna Date: Tue, 16 Apr 2024 18:31:45 +0200 Subject: [PATCH 02/12] Update includes/admin/load.php Co-authored-by: Mukesh Panchal --- includes/admin/load.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/includes/admin/load.php b/includes/admin/load.php index 15062e0879..6ad7d46b77 100644 --- a/includes/admin/load.php +++ b/includes/admin/load.php @@ -81,7 +81,7 @@ function perflab_admin_pointer( $hook_suffix ) { if ( ! in_array( $hook_suffix, array( 'index.php', 'plugins.php' ), true ) ) { - // Do not show on the settings page and dismiss the pointer + // Do not show on the settings page and dismiss the pointer. if ( !empty( $_GET['page'] ) && $_GET['page'] === PERFLAB_SCREEN ) { $dismissed[] = 'perflab-admin-pointer'; update_user_meta( $current_user, 'dismissed_wp_pointers', implode( ',', $dismissed ) ); From 3809b71141eae7f6e9050f9ef0a74e77a87108aa Mon Sep 17 00:00:00 2001 From: Matteo Enna Date: Tue, 16 Apr 2024 18:31:58 +0200 Subject: [PATCH 03/12] Update includes/admin/load.php Co-authored-by: Mukesh Panchal --- includes/admin/load.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/includes/admin/load.php b/includes/admin/load.php index 6ad7d46b77..40d93b65d4 100644 --- a/includes/admin/load.php +++ b/includes/admin/load.php @@ -82,7 +82,7 @@ function perflab_admin_pointer( $hook_suffix ) { if ( ! in_array( $hook_suffix, array( 'index.php', 'plugins.php' ), true ) ) { // Do not show on the settings page and dismiss the pointer. - if ( !empty( $_GET['page'] ) && $_GET['page'] === PERFLAB_SCREEN ) { + if ( ! empty( $_GET['page'] ) && PERFLAB_SCREEN === $_GET['page'] ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended $dismissed[] = 'perflab-admin-pointer'; update_user_meta( $current_user, 'dismissed_wp_pointers', implode( ',', $dismissed ) ); } From e381c65a03273b2793aa561aa29245f0b70ed251 Mon Sep 17 00:00:00 2001 From: Matteo Enna Date: Tue, 16 Apr 2024 18:32:09 +0200 Subject: [PATCH 04/12] Update includes/admin/load.php Co-authored-by: Mukesh Panchal --- includes/admin/load.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/includes/admin/load.php b/includes/admin/load.php index 40d93b65d4..6556a2383c 100644 --- a/includes/admin/load.php +++ b/includes/admin/load.php @@ -95,7 +95,7 @@ function perflab_admin_pointer( $hook_suffix ) { return; } - $dismissed = explode( ',', (string) get_user_meta( $current_user, 'dismissed_wp_pointers', true ) ); + $dismissed = explode( ',', (string) get_user_meta( $current_user, 'dismissed_wp_pointers', true ) ); if ( in_array( 'perflab-admin-pointer', $dismissed, true ) ) { return; From 15eb8004cf95d8711898af3e46043dae3afa9c1b Mon Sep 17 00:00:00 2001 From: Matteo Enna Date: Wed, 17 Apr 2024 05:40:05 +0200 Subject: [PATCH 05/12] Update includes/admin/load.php Co-authored-by: Adam Silverstein --- includes/admin/load.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/includes/admin/load.php b/includes/admin/load.php index 6556a2383c..dc1aec160f 100644 --- a/includes/admin/load.php +++ b/includes/admin/load.php @@ -81,7 +81,7 @@ function perflab_admin_pointer( $hook_suffix ) { if ( ! in_array( $hook_suffix, array( 'index.php', 'plugins.php' ), true ) ) { - // Do not show on the settings page and dismiss the pointer. + // Dismiss the admin pointer once the user reaches the settings screen. if ( ! empty( $_GET['page'] ) && PERFLAB_SCREEN === $_GET['page'] ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended $dismissed[] = 'perflab-admin-pointer'; update_user_meta( $current_user, 'dismissed_wp_pointers', implode( ',', $dismissed ) ); From b46427f9a8a090a30c1eb099cf15ddd39bb2b91a Mon Sep 17 00:00:00 2001 From: Matteo Enna Date: Wed, 17 Apr 2024 05:42:04 +0200 Subject: [PATCH 06/12] Update load.php --- includes/admin/load.php | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/includes/admin/load.php b/includes/admin/load.php index dc1aec160f..fc2d856f38 100644 --- a/includes/admin/load.php +++ b/includes/admin/load.php @@ -78,11 +78,12 @@ function perflab_render_settings_page() { */ function perflab_admin_pointer( $hook_suffix ) { $current_user = get_current_user_id(); + $dismissed = array_filter( explode( ',', (string) get_user_meta( get_current_user_id(), 'dismissed_wp_pointers', true ) ) ); if ( ! in_array( $hook_suffix, array( 'index.php', 'plugins.php' ), true ) ) { - // Dismiss the admin pointer once the user reaches the settings screen. - if ( ! empty( $_GET['page'] ) && PERFLAB_SCREEN === $_GET['page'] ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended + // Do not show on the settings page and dismiss the pointer. + if ( ! empty( $_GET['page'] ) && PERFLAB_SCREEN === $_GET['page'] && ( ! in_array( 'perflab-admin-pointer', $dismissed, true ))) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended $dismissed[] = 'perflab-admin-pointer'; update_user_meta( $current_user, 'dismissed_wp_pointers', implode( ',', $dismissed ) ); } @@ -95,8 +96,6 @@ function perflab_admin_pointer( $hook_suffix ) { return; } - $dismissed = explode( ',', (string) get_user_meta( $current_user, 'dismissed_wp_pointers', true ) ); - if ( in_array( 'perflab-admin-pointer', $dismissed, true ) ) { return; } From 28f8732b15736225f3d9ebfaf188c60055580671 Mon Sep 17 00:00:00 2001 From: Matteo Enna Date: Wed, 17 Apr 2024 05:46:36 +0200 Subject: [PATCH 07/12] Update load.php --- includes/admin/load.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/includes/admin/load.php b/includes/admin/load.php index fc2d856f38..96fda125d0 100644 --- a/includes/admin/load.php +++ b/includes/admin/load.php @@ -83,7 +83,7 @@ function perflab_admin_pointer( $hook_suffix ) { if ( ! in_array( $hook_suffix, array( 'index.php', 'plugins.php' ), true ) ) { // Do not show on the settings page and dismiss the pointer. - if ( ! empty( $_GET['page'] ) && PERFLAB_SCREEN === $_GET['page'] && ( ! in_array( 'perflab-admin-pointer', $dismissed, true ))) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended + if ( ! empty( $_GET['page'] ) && PERFLAB_SCREEN === $_GET['page'] && ( ! in_array( 'perflab-admin-pointer', $dismissed, true ) ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended $dismissed[] = 'perflab-admin-pointer'; update_user_meta( $current_user, 'dismissed_wp_pointers', implode( ',', $dismissed ) ); } From f0adcb151133d8a508c8d989b2c1ee5661a9aa6c Mon Sep 17 00:00:00 2001 From: Matteo Enna Date: Wed, 17 Apr 2024 05:49:20 +0200 Subject: [PATCH 08/12] Update load.php --- includes/admin/load.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/includes/admin/load.php b/includes/admin/load.php index 96fda125d0..f4b8869fa5 100644 --- a/includes/admin/load.php +++ b/includes/admin/load.php @@ -78,7 +78,7 @@ function perflab_render_settings_page() { */ function perflab_admin_pointer( $hook_suffix ) { $current_user = get_current_user_id(); - $dismissed = array_filter( explode( ',', (string) get_user_meta( get_current_user_id(), 'dismissed_wp_pointers', true ) ) ); + $dismissed = array_filter( explode( ',', (string) get_user_meta( get_current_user_id(), 'dismissed_wp_pointers', true ) ) ); if ( ! in_array( $hook_suffix, array( 'index.php', 'plugins.php' ), true ) ) { From 3f1f6cc4cab73a93fde241c421df3f69297ba7b3 Mon Sep 17 00:00:00 2001 From: Matteo Enna Date: Wed, 17 Apr 2024 23:26:12 +0200 Subject: [PATCH 09/12] Update includes/admin/load.php Co-authored-by: Weston Ruter --- includes/admin/load.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/includes/admin/load.php b/includes/admin/load.php index f4b8869fa5..9c2db6d61f 100644 --- a/includes/admin/load.php +++ b/includes/admin/load.php @@ -83,7 +83,7 @@ function perflab_admin_pointer( $hook_suffix ) { if ( ! in_array( $hook_suffix, array( 'index.php', 'plugins.php' ), true ) ) { // Do not show on the settings page and dismiss the pointer. - if ( ! empty( $_GET['page'] ) && PERFLAB_SCREEN === $_GET['page'] && ( ! in_array( 'perflab-admin-pointer', $dismissed, true ) ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended + if ( isset( $_GET['page'] ) && PERFLAB_SCREEN === $_GET['page'] && ( ! in_array( 'perflab-admin-pointer', $dismissed, true ) ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended $dismissed[] = 'perflab-admin-pointer'; update_user_meta( $current_user, 'dismissed_wp_pointers', implode( ',', $dismissed ) ); } From 59b9095e771768b3cbd24533c93d5438ce7f621e Mon Sep 17 00:00:00 2001 From: Matteo Enna Date: Thu, 18 Apr 2024 13:40:24 +0200 Subject: [PATCH 10/12] optimize order of return controller --- includes/admin/load.php | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/includes/admin/load.php b/includes/admin/load.php index 9c2db6d61f..f51cd80c27 100644 --- a/includes/admin/load.php +++ b/includes/admin/load.php @@ -77,13 +77,21 @@ function perflab_render_settings_page() { * @param string $hook_suffix The current admin page. */ function perflab_admin_pointer( $hook_suffix ) { + // Do not show admin pointer in multisite Network admin or User admin UI. + if ( is_network_admin() || is_user_admin() ) { + return; + } $current_user = get_current_user_id(); - $dismissed = array_filter( explode( ',', (string) get_user_meta( get_current_user_id(), 'dismissed_wp_pointers', true ) ) ); + $dismissed = array_filter( explode( ',', (string) get_user_meta( get_current_user_id(), 'dismissed_wp_pointers', true ) ) ); + + if ( in_array( 'perflab-admin-pointer', $dismissed, true ) ) { + return; + } if ( ! in_array( $hook_suffix, array( 'index.php', 'plugins.php' ), true ) ) { // Do not show on the settings page and dismiss the pointer. - if ( isset( $_GET['page'] ) && PERFLAB_SCREEN === $_GET['page'] && ( ! in_array( 'perflab-admin-pointer', $dismissed, true ) ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended + if ( ! empty( $_GET['page'] ) && PERFLAB_SCREEN === $_GET['page'] && ( ! in_array( 'perflab-admin-pointer', $dismissed, true ))) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended $dismissed[] = 'perflab-admin-pointer'; update_user_meta( $current_user, 'dismissed_wp_pointers', implode( ',', $dismissed ) ); } @@ -91,15 +99,6 @@ function perflab_admin_pointer( $hook_suffix ) { return; } - // Do not show admin pointer in multisite Network admin or User admin UI. - if ( is_network_admin() || is_user_admin() ) { - return; - } - - if ( in_array( 'perflab-admin-pointer', $dismissed, true ) ) { - return; - } - // Enqueue pointer CSS and JS. wp_enqueue_style( 'wp-pointer' ); wp_enqueue_script( 'wp-pointer' ); From f2c8c8d6a96f669634a0e74af6047326e3531f08 Mon Sep 17 00:00:00 2001 From: Matteo Enna Date: Thu, 18 Apr 2024 13:45:17 +0200 Subject: [PATCH 11/12] php lind error fix --- includes/admin/load.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/includes/admin/load.php b/includes/admin/load.php index f51cd80c27..82669df870 100644 --- a/includes/admin/load.php +++ b/includes/admin/load.php @@ -82,7 +82,7 @@ function perflab_admin_pointer( $hook_suffix ) { return; } $current_user = get_current_user_id(); - $dismissed = array_filter( explode( ',', (string) get_user_meta( get_current_user_id(), 'dismissed_wp_pointers', true ) ) ); + $dismissed = array_filter( explode( ',', (string) get_user_meta( get_current_user_id(), 'dismissed_wp_pointers', true ) ) ); if ( in_array( 'perflab-admin-pointer', $dismissed, true ) ) { return; @@ -91,7 +91,7 @@ function perflab_admin_pointer( $hook_suffix ) { if ( ! in_array( $hook_suffix, array( 'index.php', 'plugins.php' ), true ) ) { // Do not show on the settings page and dismiss the pointer. - if ( ! empty( $_GET['page'] ) && PERFLAB_SCREEN === $_GET['page'] && ( ! in_array( 'perflab-admin-pointer', $dismissed, true ))) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended + if ( ! empty( $_GET['page'] ) && PERFLAB_SCREEN === $_GET['page'] && ( ! in_array( 'perflab-admin-pointer', $dismissed, true ) ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended $dismissed[] = 'perflab-admin-pointer'; update_user_meta( $current_user, 'dismissed_wp_pointers', implode( ',', $dismissed ) ); } From 73297b653733abd403413277a0136c8834f9f58b Mon Sep 17 00:00:00 2001 From: Matteo Enna Date: Thu, 18 Apr 2024 13:59:04 +0200 Subject: [PATCH 12/12] Update load.php --- includes/admin/load.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/includes/admin/load.php b/includes/admin/load.php index 82669df870..fbe5478c54 100644 --- a/includes/admin/load.php +++ b/includes/admin/load.php @@ -91,7 +91,7 @@ function perflab_admin_pointer( $hook_suffix ) { if ( ! in_array( $hook_suffix, array( 'index.php', 'plugins.php' ), true ) ) { // Do not show on the settings page and dismiss the pointer. - if ( ! empty( $_GET['page'] ) && PERFLAB_SCREEN === $_GET['page'] && ( ! in_array( 'perflab-admin-pointer', $dismissed, true ) ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended + if ( isset( $_GET['page'] ) && PERFLAB_SCREEN === $_GET['page'] && ( ! in_array( 'perflab-admin-pointer', $dismissed, true ) ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended $dismissed[] = 'perflab-admin-pointer'; update_user_meta( $current_user, 'dismissed_wp_pointers', implode( ',', $dismissed ) ); }