From 35162802ed65daaf810ed1b83de0924c6c6d4e65 Mon Sep 17 00:00:00 2001
From: Bart Jaskulski <bjaskulski@protonmail.com>
Date: Mon, 18 Mar 2024 15:04:55 +0100
Subject: [PATCH] feat: initialize usage tracker

Signed-off-by: Bart Jaskulski <bjaskulski@protonmail.com>
---
 CHANGELOG.md                                     | 4 ++++
 src/Initialization/Simple/SimpleFreeStrategy.php | 3 +++
 src/Initialization/Simple/SimplePaidStrategy.php | 3 +++
 3 files changed, 10 insertions(+)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index b7ce6fd..c938608 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,7 @@
+## [Unreleased]
+### Changed
+- Usage tracker is initialized by the library after all plugin's hookables are registered.
+
 ## [1.1.0] - 2022-11-23
 ### Added
 - Compatibility with WooCommerce High-Performance Order Storage (HPOS)
diff --git a/src/Initialization/Simple/SimpleFreeStrategy.php b/src/Initialization/Simple/SimpleFreeStrategy.php
index 11c376f..5927a1b 100644
--- a/src/Initialization/Simple/SimpleFreeStrategy.php
+++ b/src/Initialization/Simple/SimpleFreeStrategy.php
@@ -52,6 +52,9 @@ class SimpleFreeStrategy implements InitializationStrategy {
 
 		$this->store_plugin( $this->plugin );
 		$this->init_plugin( $this->plugin );
+		// 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();
 
 		return $this->plugin;
 	}
diff --git a/src/Initialization/Simple/SimplePaidStrategy.php b/src/Initialization/Simple/SimplePaidStrategy.php
index e4fe869..df7fd1c 100644
--- a/src/Initialization/Simple/SimplePaidStrategy.php
+++ b/src/Initialization/Simple/SimplePaidStrategy.php
@@ -65,6 +65,9 @@ class SimplePaidStrategy implements InitializationStrategy {
 			}
 			$this->store_plugin( $this->plugin );
 			$this->init_plugin( $this->plugin );
+			// 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();
 		}, $priority_before_flow_2_5_after_2_6 = -45);
 
 		return $this->plugin;
-- 
GitLab