From fff721dd185f5b97f7ae7a6e64189e55887ff590 Mon Sep 17 00:00:00 2001
From: Jake Vanderwerf <get@jakevanderwerf.ca>
Date: Sun, 05 Jul 2026 18:36:57 +0000
Subject: [PATCH] =Cleaning up the Square integration (still a bit more to do yet). Also majorly overhauled /rest/ files to ignore a rest request 'user' paramater, and rely on get_current_user_id() instead.

---
 inc/integrations/Umami.php |   20 +++++++++++++++-----
 1 files changed, 15 insertions(+), 5 deletions(-)

diff --git a/inc/integrations/Umami.php b/inc/integrations/Umami.php
index 3c89b76..4afb1d5 100644
--- a/inc/integrations/Umami.php
+++ b/inc/integrations/Umami.php
@@ -35,7 +35,17 @@
 	private string $events_table;
 	private string $metrics_table;
 
-	public function __construct(?int $userID = null)
+	protected static array $instances = [];
+	public static function getInstance(?int $userID = null):self
+	{
+		$key = is_null($userID) ? 'base' : $userID;
+		if (!array_key_exists($key, self::$instances)) {
+			self::$instances[$key] = new static($userID);
+		}
+		return self::$instances[$key];
+	}
+
+	protected function __construct(?int $userID = null)
 	{
 		$this->service_name = 'umami';
 		$this->title = 'Umami.js';
@@ -138,14 +148,14 @@
 	 */
 	public function renderTrackingScript(): void
 	{
+		// Skip on local environments
+		if (JVB_TESTING) {
+			return;
+		}
 		if (!$this->isSetUp() || is_admin()) {
 			return;
 		}
 
-		// Skip on local environments
-		if (strpos(get_home_url(), JVB_LOCAL) !== false) {
-			return;
-		}
 
 		$script_url = $this->getTrackingScriptUrl();
 		$website_id = $this->getWebsiteId();

--
Gitblit v1.10.0