From 2127b1bdd73ecd2423e443992da4b442f5a3c1a3 Mon Sep 17 00:00:00 2001
From: Jake Vanderwerf <get@jakevanderwerf.ca>
Date: Wed, 04 Feb 2026 21:19:25 +0000
Subject: [PATCH] =Major overhaul of MetaManager.php -> Meta.php and RestRouteManager.php -> Rest.php. Seems to work for JakeVan
---
inc/meta/Field.php | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 51 insertions(+), 0 deletions(-)
diff --git a/inc/meta/Field.php b/inc/meta/Field.php
index 0efb8e3..c6cf372 100644
--- a/inc/meta/Field.php
+++ b/inc/meta/Field.php
@@ -27,6 +27,9 @@
$this->config = $config;
}
+ /**
+ * Set field value and track dirty state
+ */
public function set(mixed $value): self
{
$this->value = $value;
@@ -34,11 +37,17 @@
return $this;
}
+ /**
+ * Get current value
+ */
public function get(): mixed
{
return $this->value;
}
+ /**
+ * Mark field as clean (after save)
+ */
public function markClean(): self
{
$this->originalValue = $this->value;
@@ -46,6 +55,9 @@
return $this;
}
+ /**
+ * Reset to original value
+ */
public function reset(): self
{
$this->value = $this->originalValue;
@@ -53,6 +65,9 @@
return $this;
}
+ /**
+ * Add validation error
+ */
public function addError(string $message): self
{
$this->errors[] = $message;
@@ -60,6 +75,9 @@
return $this;
}
+ /**
+ * Clear all errors
+ */
public function clearErrors(): self
{
$this->errors = [];
@@ -67,18 +85,51 @@
return $this;
}
+ /**
+ * Get field type from config
+ */
public function type(): string
{
return $this->config['type'] ?? 'text';
}
+ /**
+ * Check if this is a WordPress default field
+ */
public function isWpDefault(): bool
{
return $this->config['_wp_default'] ?? false;
}
+ /**
+ * Check if this is a taxonomy relationship field (not taxonomy_type)
+ */
public function isTaxonomy(): bool
{
return $this->type() === 'taxonomy' && !isset($this->config['taxonomy_type']);
}
+
+ /**
+ * Check if field is required
+ */
+ public function isRequired(): bool
+ {
+ return !empty($this->config['required']);
+ }
+
+ /**
+ * Get field label
+ */
+ public function label(): string
+ {
+ return $this->config['label'] ?? $this->name;
+ }
+
+ /**
+ * Get field description
+ */
+ public function description(): string
+ {
+ return $this->config['description'] ?? '';
+ }
}
--
Gitblit v1.10.0