From 07282da9671de8fb2601e9e641decb2655439ad8 Mon Sep 17 00:00:00 2001
From: Jake Vanderwerf <get@jakevanderwerf.ca>
Date: Thu, 01 Jan 2026 23:20:54 +0000
Subject: [PATCH] =FeedRoutes.php: fixed the extractTaxonomies method
---
inc/meta/MetaManager.php | 32 ++++++++++++++++++++------------
1 files changed, 20 insertions(+), 12 deletions(-)
diff --git a/inc/meta/MetaManager.php b/inc/meta/MetaManager.php
index 380ac9a..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 '';
}
@@ -333,11 +341,7 @@
}
}
if ($field_config['type'] == 'taxonomy' && (!array_key_exists('taxonomy_type', $field_config))) {
- error_log('Attempting to set taxonomies: ' . print_r($this->object_id, true));
- error_log('Sanitized data: ' . print_r($sanitized, true));
- error_log('Taxonomy: ' . print_r($field_config['taxonomy'], true));
$set = wp_set_post_terms($this->object_id, $sanitized, jvbCheckBase($field_config['taxonomy']), false);
- error_log('Set post terms: ' . print_r($set, true));
}
if ($field_config['type'] === 'location' && empty($sanitized)) {
$this->addMeta('has_map', false);
@@ -358,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) {
@@ -763,7 +770,7 @@
}
- echo (jvbCheck('submit', $options)) ? '<button type="submit">'.jvbIcon('save').'Save</button>' : '';
+ echo (jvbCheck('submit', $options)) ? '<button type="submit">'.jvbIcon('floppy-disk').'Save</button>' : '';
echo '</form>';
$out = ob_get_clean();
@@ -807,7 +814,7 @@
$out = '<p class="'.$name.'">'.jvbIcon('calendar').'<span></span></p>';
break;
case 'time':
- $out = '<p class="'.$name.'">'.jvbIcon('time').'<time></time></p>';
+ $out = '<p class="'.$name.'">'.jvbIcon('clock').'<time></time></p>';
break;
case 'true_false':
$out = '<p class="'.$name.'"></p>';
@@ -1020,7 +1027,8 @@
}
if ($field_config['type'] === 'taxonomy' && !array_key_exists('taxonomy_type', $field_config)){
- $set = wp_set_post_terms($this->object_id, $sanitized, jvbCheckBase($field_config['taxonomy']), false);
+ $term_ids = array_map('intval', explode(',', trim($sanitized)));
+ $set = wp_set_post_terms($this->object_id, $term_ids, jvbCheckBase($field_config['taxonomy']), false);
}
if ($field_config['type'] === 'location' && empty($sanitized)) {
--
Gitblit v1.10.0