Changeset 3355224
- Timestamp:
- 09/03/2025 09:43:14 AM (7 months ago)
- Location:
- ovesio/trunk
- Files:
-
- 6 edited
-
. (modified) (1 prop)
-
admin/buttons.php (modified) (2 diffs)
-
callback.php (modified) (6 diffs)
-
composer.json (modified) (1 diff)
-
ovesio.php (modified) (2 diffs)
-
readme.txt (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
ovesio/trunk
-
Property
svn:ignore
set to
.vscode
-
Property
svn:ignore
set to
-
ovesio/trunk/admin/buttons.php
r3340237 r3355224 181 181 ], 182 182 ]; 183 184 //Get tags 185 if(in_array($type, ['post', 'product'])) { 186 $tags = get_the_terms($id, $type . '_tag'); 187 if (!empty($tags) && !is_wp_error($tags)) { 188 foreach ($tags as $tag) { 189 $request[] = [ 190 'key' => 't:' . $tag->term_id, 191 'value' => $tag->name 192 ]; 193 } 194 } 195 } 183 196 184 197 // Elementor compatibility … … 212 225 } 213 226 227 //Yoast compatibility 228 $all_meta = get_post_meta($id); 229 $yoast_meta = array_filter($all_meta, function($key) { 230 return in_array($key, ['_yoast_wpseo_focuskw', '_yoast_wpseo_metadesc']); 231 }, ARRAY_FILTER_USE_KEY); 232 233 foreach($yoast_meta as $meta_key => $meta_value) { 234 $request[] = [ 235 'key' => 'y:' . $meta_key, 236 'value' => isset($meta_value[0]) ? $meta_value[0] : $meta_value 237 ]; 238 } 239 214 240 break; 215 241 case 'post_tag': -
ovesio/trunk/callback.php
r3340237 r3355224 90 90 91 91 $post['post_status'] = $post_status; 92 $ elementor= [];92 $yoast = $elementor = $tags = []; 93 93 foreach($callback->content as $content) { 94 if(substr($content->key, 0, 2) == 'e:') { 94 if(substr($content->key, 0, 2) == 't:') { //tags 95 $content->key = substr($content->key, 2, strlen($content->key)); 96 $tags[$content->key] = $content->value; 97 } elseif(substr($content->key, 0, 2) == 'e:') { //elementor 95 98 $content->key = substr($content->key, 2, strlen($content->key)); 96 99 $elementor[] = (array) $content; 100 } elseif(substr($content->key, 0, 2) == 'y:') { //yoast 101 $content->key = substr($content->key, 2, strlen($content->key)); 102 $yoast[$content->key] = $content->value; 97 103 } else { 98 104 $post[$content->key] = $content->value; … … 103 109 // $new_post_id = wp_update_post($post); 104 110 // } else { 111 $post['post_name'] = sanitize_title($post['post_title']); 112 105 113 $new_post_id = wp_insert_post($post); 106 114 // } 115 116 //Update tags if exists 117 if(!empty($tags) && in_array($type, ['post', 'product'])) { 118 $tag_type = $type . '_tag'; 119 120 $new_tags = []; 121 foreach($tags as $tag_id => $tag_value) { 122 $term = (array) get_term($tag_id, $tag_type); 123 if (is_wp_error($term) || !$term) { 124 continue; 125 } 126 unset($term['name']); 127 unset($term['description']); 128 129 $tag_translation = pll_get_term_translations($tag_id); 130 131 $name = esc_html(wp_unslash($tag_value)); 132 133 // Create the translated term 134 $parent_cat = ovesio_parent_category_relations($tag_id, $target_lang); 135 136 // Check if the Term exists in the target language To append new lang sulg 137 $term_exists = term_exists($name, $tag_type, $parent_cat); 138 // If the term already exists, append the language slug to the title 139 // if(!empty($term_exists)) { 140 // $existing_term = get_term($term_exists['term_id'], $tag_type); 141 // $term['slug'] = $existing_term->slug; 142 // } else { 143 $term['slug'] = sanitize_title($name); 144 // } 145 146 //Check if it's an update 147 if (!isset($tag_translation[$target_lang])) { 148 $new_term = wp_insert_term($name, $tag_type, $term); 149 150 $new_term_id = (is_array($new_term) && !empty($new_term['term_id'])) ? $new_term['term_id'] : $new_term->term_id; 151 if (is_wp_error($new_term)) { 152 if(!empty($new_term->error_data['term_exists'])) { 153 $new_term_id = $new_term->error_data['term_exists']; 154 } else { 155 continue; 156 } 157 } 158 159 // Set language 160 if (function_exists('pll_set_term_language')) { 161 pll_set_term_language($new_term_id, $target_lang); 162 } 163 164 // Get existing translations 165 if (function_exists('pll_get_term_translations') && function_exists('pll_save_term_translations')) { 166 if (!isset($tag_translation[$target_lang])) { 167 // Add the new translation 168 $tag_translation[$target_lang] = $new_term_id; 169 // Save the updated translations 170 pll_save_term_translations($tag_translation); 171 } 172 } 173 174 $new_tags[] = $name; 175 } 176 } 177 178 //Add tags to post 179 if($new_tags) { 180 wp_set_post_tags($new_post_id, $new_tags, true); 181 } 182 } 107 183 108 184 // Check if the post was created successfully … … 127 203 // update_post_meta($new_post_id, '_elementor_page_settings', $post['_elementor_page_settings']); 128 204 // } 205 } 206 207 if($yoast) { 208 foreach($yoast as $y_key => $y_value) 209 { 210 update_post_meta($new_post_id, $y_key, $y_value); 211 } 129 212 } 130 213 … … 210 293 $name = $term['name']; 211 294 unset($term['name']); 295 unset($term['description']); 212 296 213 297 // Create the translated term … … 232 316 } 233 317 318 $new_term_id = (is_array($new_term) && !empty($new_term['term_id'])) ? $new_term['term_id'] : $new_term->term_id; 319 234 320 if (is_wp_error($new_term)) { 235 wp_send_json_error('Term creation failed: ' . $new_term->get_error_message(), 500); 236 } 237 238 if (!isset($new_term['term_id'])) { 321 if(!empty($new_term->error_data['term_exists'])) { 322 $new_term_id = $new_term->error_data['term_exists']; 323 } else { 324 wp_send_json_error('Term creation failed: ' . $new_term->get_error_message(), 500); 325 } 326 } 327 328 if (empty($new_term_id)) { 239 329 wp_send_json_error('Term ID not returned', 500); 240 330 } 241 331 242 $new_post_id = $new_term ['term_id'];332 $new_post_id = $new_term_id; 243 333 244 334 // Set language 245 335 if (function_exists('pll_set_term_language')) { 246 pll_set_term_language($new_term ['term_id'], $target_lang);336 pll_set_term_language($new_term_id, $target_lang); 247 337 } 248 338 … … 251 341 if (!isset($translations[$target_lang])) { 252 342 // Add the new translation 253 $translations[$target_lang] = $new_term ['term_id'];343 $translations[$target_lang] = $new_term_id; 254 344 // Save the updated translations 255 345 pll_save_term_translations($translations); -
ovesio/trunk/composer.json
r3347392 r3355224 2 2 "name": "ovesio/ovesio-wordpress", 3 3 "description": "WordPress plugin that integrates Ovesio AI Translation and SEO tools.", 4 "version": "1.3. 4",4 "version": "1.3.5", 5 5 "type": "wordpress-plugin", 6 6 "require": { -
ovesio/trunk/ovesio.php
r3347401 r3355224 4 4 * Plugin Name: Ovesio 5 5 * Description: Get instant translations & contentn generator in over 27 languages, powered by the most advanced artificial intelligence technologies. 6 * Version: 1.3. 46 * Version: 1.3.5 7 7 * Author: Ovesio 8 8 * Text Domain: ovesio … … 18 18 } 19 19 20 define('OVESIO_PLUGIN_VERSION', '1.3. 4');20 define('OVESIO_PLUGIN_VERSION', '1.3.5'); 21 21 define('OVESIO_PLUGIN_DIR', plugin_dir_path(__FILE__)); 22 22 define('OVESIO_ADMIN_DIR', OVESIO_PLUGIN_DIR . 'admin/'); -
ovesio/trunk/readme.txt
r3347392 r3355224 4 4 Requires PHP: 7.2 5 5 License: GPLv2 or later 6 Stable tag: 1.3. 46 Stable tag: 1.3.5 7 7 Contributors: ovesio, awebro 8 8 Tags: multilingual, translate, translation, language, localization … … 125 125 126 126 == Changelog == 127 = 1.3.5 = 128 Added Yoast support 129 Post tags are now translated 130 127 131 = 1.3.4 = 128 132 Readme file updated
Note: See TracChangeset
for help on using the changeset viewer.