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/Helcim.php |   24 +++++++++++++++++++++++-
 1 files changed, 23 insertions(+), 1 deletions(-)

diff --git a/inc/integrations/Helcim.php b/inc/integrations/Helcim.php
index 3dd1400..7f2556d 100644
--- a/inc/integrations/Helcim.php
+++ b/inc/integrations/Helcim.php
@@ -40,7 +40,17 @@
 		'per_hour'   => 1000
 	];
 
-	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 self($userID);
+		}
+		return self::$instances[$key];
+	}
+
+	protected function __construct(?int $userID = null)
 	{
 		$this->title = 'Helcim';
 		$this->icon  = 'credit-card';
@@ -172,12 +182,24 @@
 
 	public function getAdditionalFields(?string $content_type = null):array
 	{
+		if ($content_type === 'customer') {
+			$array = $this->getCustomerFields();
+			return array_combine(
+				array_map(fn($k) => '_square_' . $k, array_keys($array)),
+				$array
+			);
+		}
 		return array_combine(
 			array_map(fn($k) => 'hc_' . $k, array_keys($this->getHelcimMeta($content_type))),
 			$this->getHelcimMeta($content_type)
 		);
 	}
 
+	protected function getCustomerFields():array
+	{
+		return [];
+	}
+
 	/**
 	 * Get Helcim product meta fields by type.
 	 *

--
Gitblit v1.10.0