function set_string_language($value, $context, $name, $language) { if (WPML_SUPPORT_STRINGS_IN_DIFF_LANG) { global $wpdb; $string_id = icl_get_string_id($value, $context, $name); $string_object = new WPML_ST_String($string_id, $wpdb); $string_language = $string_object->set_language($language); return $string_language; } else { return false; } }
static function save_sync_options() { global $sitepress, $wpdb; $slug_settings = $sitepress->get_setting('posts_slug_translation'); if (isset($slug_settings['on']) && $slug_settings['on'] && !empty($_POST['translate_slugs'])) { foreach ($_POST['translate_slugs'] as $type => $data) { $slug_settings['types'][$type] = isset($data['on']) ? intval(!empty($data['on'])) : false; if (empty($slug_settings['types'][$type])) { continue; } $post_type_obj = get_post_type_object($type); $slug = trim($post_type_obj->rewrite['slug'], '/'); $string_id = $wpdb->get_var(self::get_sql_to_get_string_id($type)); $string_id = empty($string_id) ? self::register_string_for_slug($type, $slug) : $string_id; if ($string_id) { if (!isset($data['original'])) { $data['original'] = $sitepress->get_default_language(); } $string = new WPML_ST_String($string_id, $wpdb); if ($string->get_language() != $data['original']) { $string->set_language($data['original']); } if (isset($data['langs'])) { foreach ($sitepress->get_active_languages() as $lang) { if ($lang['code'] != $data['original']) { $data['langs'][$lang['code']] = join('/', array_map(array('WPML_Slug_Translation', 'sanitize'), explode('/', $data['langs'][$lang['code']]))); $data['langs'][$lang['code']] = urldecode($data['langs'][$lang['code']]); icl_add_string_translation($string_id, $lang['code'], $data['langs'][$lang['code']], ICL_TM_COMPLETE); } } } icl_update_string_status($string_id); } } } $sitepress->set_setting('posts_slug_translation', $slug_settings, true); }