From 06c51c7f7217ec3438d23928a86997e8ebe4827b Mon Sep 17 00:00:00 2001 From: Adam Cassis Date: Fri, 24 May 2024 10:18:07 +0200 Subject: [PATCH 1/2] fix(tracking): handling user role in pixel --- includes/tracking/class-meta-pixel.php | 5 ++++- includes/tracking/class-pixel.php | 21 ++++++++------------- 2 files changed, 12 insertions(+), 14 deletions(-) diff --git a/includes/tracking/class-meta-pixel.php b/includes/tracking/class-meta-pixel.php index 98f95b65b4..a208c545f0 100644 --- a/includes/tracking/class-meta-pixel.php +++ b/includes/tracking/class-meta-pixel.php @@ -24,6 +24,9 @@ public function __construct() { * Print the pixels' codes. */ public function print_code_snippets() { + if ( ! $this->is_configured() ) { + return; + } add_action( 'wp_head', [ $this, 'print_head_snippet' ], 100 ); add_action( 'wp_footer', [ $this, 'print_footer_snippet' ] ); } @@ -38,7 +41,7 @@ private static function get_event_params() { $current_user = wp_get_current_user(); $event_params = [ 'page_title' => get_the_title(), - 'user_role' => empty( $current_user->roles ) ? 'guest' : $current_user->roles[0], + 'user_role' => empty( $current_user->roles ) ? 'guest' : array_shift( $current_user->roles ), 'event_url' => home_url( $wp->request ), ]; diff --git a/includes/tracking/class-pixel.php b/includes/tracking/class-pixel.php index e68154f87d..490e301dba 100644 --- a/includes/tracking/class-pixel.php +++ b/includes/tracking/class-pixel.php @@ -72,12 +72,12 @@ public function get_option() { } /** - * Checks if option is active + * Checks if pixel should be printed. * * @return boolean */ - public function is_active() { - return $this->get_option()['active']; + public function is_configured() { + return ! empty( $this->get_pixel_id() ); } /** @@ -86,7 +86,7 @@ public function is_active() { * @return string */ public function get_pixel_id() { - if ( ! $this->is_active() ) { + if ( ! $this->get_option()['active'] ) { return ''; } return $this->get_option()['pixel_id']; @@ -145,14 +145,10 @@ public function is_amp() { * @return void */ public function create_js_snippet( $payload ) { - if ( $this->is_amp() ) { + if ( $this->is_amp() || ! $this->is_configured() ) { return; } - $pixel_id = $this->get_pixel_id(); - if ( empty( $pixel_id ) ) { - return; - } - echo str_replace( '__PIXEL_ID__', $pixel_id, $payload ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + echo str_replace( '__PIXEL_ID__', $this->get_pixel_id(), $payload ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped } /** @@ -162,12 +158,11 @@ public function create_js_snippet( $payload ) { * @return void */ public function create_noscript_snippet( $payload ) { - $pixel_id = $this->get_pixel_id(); - if ( empty( $pixel_id ) ) { + if ( ! $this->is_configured() ) { return; } // If AMP plugin is enabled, it will convert the image into a tag. - echo ''; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped + echo ''; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped } /** From 28f5df2c936fb5029f9a8d95fca5ae9d3f15d150 Mon Sep 17 00:00:00 2001 From: Adam Cassis Date: Mon, 27 May 2024 08:16:48 +0200 Subject: [PATCH 2/2] refactor: more applicable function --- includes/tracking/class-meta-pixel.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/includes/tracking/class-meta-pixel.php b/includes/tracking/class-meta-pixel.php index a208c545f0..a815580b2c 100644 --- a/includes/tracking/class-meta-pixel.php +++ b/includes/tracking/class-meta-pixel.php @@ -41,7 +41,7 @@ private static function get_event_params() { $current_user = wp_get_current_user(); $event_params = [ 'page_title' => get_the_title(), - 'user_role' => empty( $current_user->roles ) ? 'guest' : array_shift( $current_user->roles ), + 'user_role' => empty( $current_user->roles ) ? 'guest' : reset( $current_user->roles ), 'event_url' => home_url( $wp->request ), ];