From 235ce5716edc2f7cbe80fdccf26eac7269587839 Mon Sep 17 00:00:00 2001
From: Jake Vanderwerf <get@jakevanderwerf.ca>
Date: Mon, 08 Jun 2026 04:38:18 +0000
Subject: [PATCH] =FavouritesManager.php and FavouritesRoutes.php fixes. Moving all logic to FavouritesManager.php. Still some left to do
---
inc/meta/Storage.php | 45 ++++++++++++++++++++++++++++++---------------
1 files changed, 30 insertions(+), 15 deletions(-)
diff --git a/inc/meta/Storage.php b/inc/meta/Storage.php
index df1089c..386b7b4 100644
--- a/inc/meta/Storage.php
+++ b/inc/meta/Storage.php
@@ -2,6 +2,7 @@
namespace JVBase\meta;
use Exception;
+use JVBase\managers\Cache;
if (!defined('ABSPATH')) {
exit;
@@ -76,7 +77,7 @@
&& (
($config['type'] ?? '') === 'taxonomy'
|| (($config['type']??'') === 'selector' && ($config['subtype']??'') === 'taxonomy')
- ) && !isset($config['taxonomy_type'])) {
+ ) && (!isset($config['taxonomy_type']) || !isset($config['isReference']))) {
$taxonomyFields[$name] = $config;
} else {
$metaFields[] = $name;
@@ -122,18 +123,21 @@
}
if ($field->isTaxonomy()) {
+ error_log('Saving Taxonomy field with set_object_terms');
return $this->saveTaxonomyField($item, $field);
}
$metaKey = BASE . $field->name;
-
- return match ($item->objectType) {
- 'post' => update_post_meta($item->id, $metaKey, $field->value) !== false,
- 'term' => update_term_meta($item->id, $metaKey, $field->value) !== false,
- 'user', 'integrations' => update_user_meta($item->id, $metaKey, $field->value) !== false,
+ $result = match ($item->objectType) {
+ 'post' => (bool)update_post_meta($item->id, $metaKey, $field->value),
+ 'term' => (bool)update_term_meta($item->id, $metaKey, $field->value),
+ 'user', 'integrations' => (bool)update_user_meta($item->id, $metaKey, $field->value),
'options' => $this->saveOption($item, $field),
default => false
};
+
+ error_log('Result: '.print_r($result, true));
+ return $result;
}
/**
@@ -148,10 +152,10 @@
}
$this->wpdb->query('START TRANSACTION');
-
try {
foreach ($dirty as $field) {
if (!$this->saveField($item, $field)) {
+ error_log("Could not save field: {$field->name}");
throw new Exception("Failed to save field: {$field->name}");
}
$field->markClean();
@@ -160,10 +164,7 @@
$this->wpdb->query('COMMIT');
// Update post modified timestamp
- if ($updateTimestamp && $item->objectType === 'post' && $item->id) {
- wp_update_post(['ID' => $item->id]);
- }
-
+ Cache::invalidateItem($item->objectType, $item->id);
$this->clearCache($item);
return true;
@@ -433,7 +434,7 @@
{
return match ($name) {
'post_title' => get_the_title($item->id),
- 'post_excerpt' => get_the_excerpt($item->id),
+ 'post_excerpt' => has_excerpt($item->id) ? get_the_excerpt($item->id):'',
'post_content' => get_post_field('post_content', $item->id),
default => $item->wpObject->$name ?? ''
};
@@ -442,7 +443,7 @@
protected function getTermField(Item $item, string $name): mixed
{
return match ($name) {
- 'term_name' => get_term_field('name', $item->id),
+ 'name' => get_term_field('name', $item->id),
'description' => get_term_field('description', $item->id),
default => ''
};
@@ -465,6 +466,9 @@
$value = $field->value;
if (in_array($name, ['featured_image', 'post_thumbnail'])) {
+ if (empty($value)) {
+ return delete_post_thumbnail($item->id);
+ }
return set_post_thumbnail($item->id, $value) !== false;
}
@@ -537,7 +541,6 @@
{
$taxonomy = jvbCheckBase($field->config['taxonomy']);
$value = $field->value;
-
if (empty(trim((string)$value))) {
wp_set_object_terms($item->id, [], $taxonomy, false);
return true;
@@ -737,8 +740,20 @@
set_post_thumbnail($id, $fields['post_thumbnail']);
unset($fields['post_thumbnail']);
}
+ if (isset($fields['post_thumbnail'])) {
+ if (empty($fields['post_thumbnail'])) {
+ delete_post_thumbnail($id);
+ } else {
+ set_post_thumbnail($id, $fields['post_thumbnail']);
+ }
+ unset($fields['post_thumbnail']);
+ }
if (isset($fields['featured_image'])) {
- set_post_thumbnail($id, $fields['featured_image']);
+ if (empty($fields['featured_image'])) {
+ delete_post_thumbnail($id);
+ } else {
+ set_post_thumbnail($id, $fields['featured_image']);
+ }
unset($fields['featured_image']);
}
--
Gitblit v1.10.0