From 474109a5df0a06f5343ab184838fe2d80e3872a8 Mon Sep 17 00:00:00 2001
From: Jake Vanderwerf <get@jakevanderwerf.ca>
Date: Sun, 11 Jan 2026 19:23:20 +0000
Subject: [PATCH] =Fixed timeline CRUD.js issue where this.activeItem was set null when we still needed it

---
 inc/meta/MetaManager.php |   21 ++++++++++++++++-----
 1 files changed, 16 insertions(+), 5 deletions(-)

diff --git a/inc/meta/MetaManager.php b/inc/meta/MetaManager.php
index a1d7dbc..57b8076 100644
--- a/inc/meta/MetaManager.php
+++ b/inc/meta/MetaManager.php
@@ -25,6 +25,8 @@
 	protected string|null $object_type;
 	protected int $max_file_size = 5242880;
 	protected ?string $content = null;
+
+	protected ?string $baseKey = null;
 	protected \wpdb $wpdb;
 	protected array $postFields = [
 		'post_title',
@@ -49,12 +51,11 @@
 		'description'
 	];
 
-	public function __construct(?int $ID = null, ?string $type = null, ?string $content = null)
+	public function __construct(int|string|null $ID = null, ?string $type = null, ?string $content = null)
 	{
 		global $wpdb;
 		$this->wpdb = $wpdb;
-		$this->object_id = $ID;
-
+		$this->object_id = is_int($ID) ? $ID : null;
 		$this->object_type = $type;
 		if ($ID) {
 			switch ($type) {
@@ -68,6 +69,10 @@
 				case 'integrations':
 					$this->data = get_user($ID);
 					break;
+				case 'options':
+					$this->baseKey = $ID;
+					$this->data = null;
+					break;
 				default:
 					$this->data = null;
 					break;
@@ -146,7 +151,10 @@
 			case 'integrations':
 				return get_user_meta($this->object_id, $meta_key, true);
 			case 'options':
-				return get_option($meta_key);
+				$key = $this->baseKey
+					? BASE . $this->baseKey . '_' . $name
+					: BASE . $name;
+				return get_option($key);
 			default:
 				return '';
 		}
@@ -354,7 +362,10 @@
 					$result = update_user_meta($this->object_id, $meta_key, $sanitized);
 					break;
 				case 'options':
-					$result = update_option($meta_key, $sanitized);
+					$key = $this->baseKey
+						? BASE . $this->baseKey . '_' . $name
+						: BASE . $name;
+					return update_option($key, $sanitized);
 			}
 
 			if ($result === false) {

--
Gitblit v1.10.0