From 233d6e6fc284ce31186273cf167da834384c7af0 Mon Sep 17 00:00:00 2001 From: Bart Jaskulski <bjaskulski@protonmail.com> Date: Tue, 19 Mar 2024 08:43:29 +0100 Subject: [PATCH] fix: register tracker ui extensions for each plugin Tracker UI extension has to be registered for each plugin, and doing it inside filter triggers limits to only one execution. Signed-off-by: Bart Jaskulski <bjaskulski@protonmail.com> --- .../Simple/SimpleFreeStrategy.php | 1 + .../Simple/SimplePaidStrategy.php | 1 + .../TrackerInstanceAsFilterTrait.php | 24 ++++++++++--------- 3 files changed, 15 insertions(+), 11 deletions(-) diff --git a/src/Initialization/Simple/SimpleFreeStrategy.php b/src/Initialization/Simple/SimpleFreeStrategy.php index 5927a1b..5be4d3d 100644 --- a/src/Initialization/Simple/SimpleFreeStrategy.php +++ b/src/Initialization/Simple/SimpleFreeStrategy.php @@ -55,6 +55,7 @@ class SimpleFreeStrategy implements InitializationStrategy { // Flush usage tracker late, to remain backward compatible with plugins which could instantiate // the tracker on their own through `wpdesk_tracker_instance` filter. $this->get_tracker_instance(); + $this->register_tracker_ui_extensions(); return $this->plugin; } diff --git a/src/Initialization/Simple/SimplePaidStrategy.php b/src/Initialization/Simple/SimplePaidStrategy.php index df7fd1c..8600c4b 100644 --- a/src/Initialization/Simple/SimplePaidStrategy.php +++ b/src/Initialization/Simple/SimplePaidStrategy.php @@ -68,6 +68,7 @@ class SimplePaidStrategy implements InitializationStrategy { // Flush usage tracker late, to remain backward compatible with plugins which could instantiate // the tracker on their own through `wpdesk_tracker_instance` filter. $this->get_tracker_instance(); + $this->register_tracker_ui_extensions(); }, $priority_before_flow_2_5_after_2_6 = -45); return $this->plugin; diff --git a/src/Initialization/TrackerInstanceAsFilterTrait.php b/src/Initialization/TrackerInstanceAsFilterTrait.php index 6e044ee..d9b5191 100644 --- a/src/Initialization/TrackerInstanceAsFilterTrait.php +++ b/src/Initialization/TrackerInstanceAsFilterTrait.php @@ -58,21 +58,23 @@ trait TrackerInstanceAsFilterTrait { $tracker_factory = new \WPDesk_Tracker_Factory_Prefixed(); self::$tracker_instance = $tracker_factory->create_tracker( basename( $this->plugin_info->get_plugin_file_name() ) ); - $shops = $this->plugin_info->get_plugin_shops(); - $shop_url = $shops[ get_locale() ] ?? ( $shops['default'] ?? 'https://wpdesk.net' ); - $tracker_ui = new OptInOptOut( - $this->plugin_info->get_plugin_file_name(), - $this->plugin_info->get_plugin_slug(), - $shop_url, - $this->plugin_info->get_plugin_name() - ); - $tracker_ui->create_objects(); - $tracker_ui->hooks(); - do_action( 'wpdesk_tracker_started', self::$tracker_instance, $this->plugin_info ); return self::$tracker_instance; } }, 10 - $this->get_tracker_version() ); } + + private function register_tracker_ui_extensions() { + $shops = $this->plugin_info->get_plugin_shops(); + $shop_url = $shops[ get_locale() ] ?? ( $shops['default'] ?? 'https://wpdesk.net' ); + $tracker_ui = new OptInOptOut( + $this->plugin_info->get_plugin_file_name(), + $this->plugin_info->get_plugin_slug(), + $shop_url, + $this->plugin_info->get_plugin_name() + ); + $tracker_ui->create_objects(); + $tracker_ui->hooks(); + } } \ No newline at end of file -- GitLab