| | |
| | | && ( |
| | | ($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; |
| | |
| | | } |
| | | |
| | | 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; |
| | | } |
| | | |
| | | /** |
| | |
| | | } |
| | | |
| | | $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(); |
| | |
| | | { |
| | | $taxonomy = jvbCheckBase($field->config['taxonomy']); |
| | | $value = $field->value; |
| | | |
| | | if (empty(trim((string)$value))) { |
| | | wp_set_object_terms($item->id, [], $taxonomy, false); |
| | | return true; |