public function change_language_of_strings($domain, $langs, $to_lang, $set_as_default) { $package_translation = new WPML_Package_Helper(); $package_translation->change_language_of_strings_in_domain($domain, $langs, $to_lang); if (!empty($langs)) { foreach ($langs as &$lang) { $lang = "'" . $lang . "'"; } $langs = implode(',', $langs); $update_query = "UPDATE {$this->wpdb->prefix}icl_strings SET language=%s WHERE context=%s AND language IN ({$langs})"; $update_prepare = $this->wpdb->prepare($update_query, $to_lang, $domain); $this->wpdb->query($update_prepare); } if ($set_as_default) { $lang_of_domain = new WPML_Language_Of_Domain($this->sitepress); $lang_of_domain->set_language($domain, $to_lang); } $string_ids = $this->wpdb->get_col($this->wpdb->prepare("SELECT id FROM {$this->wpdb->prefix}icl_strings WHERE context = %s", $domain)); foreach ($string_ids as $strid) { $string = new WPML_ST_String($strid, $this->wpdb); $string->update_status(); } return array('success' => true); }
function icl_update_string_status($string_id) { global $wpdb; $string = new WPML_ST_String($string_id, $wpdb); return $string->update_status(); }