/** * @param string $link * @param int $post_id * @param string $lang * @param int $trid * * @return string */ public function filter_status_link($link, $post_id, $lang, $trid) { $translated_element_id = $this->post_translations->get_element_id($lang, $trid); $source_lang = $this->post_translations->get_source_lang_code($translated_element_id); if ((bool) $translated_element_id && (bool) $source_lang === false) { return $link; } $this->maybe_load_stats($trid); $is_remote = $this->is_remote($trid, $lang); $is_in_progress = $this->is_in_progress($trid, $lang); $use_tm_editor = $this->sitepress->get_setting('doc_translation_method'); $use_tm_editor = apply_filters('wpml_use_tm_editor', $use_tm_editor); $source_lang_code = $this->post_translations->get_element_lang_code($post_id); if ($is_remote && $is_in_progress || $this->is_in_basket($trid, $lang) || !$this->is_lang_pair_allowed($lang, $source_lang)) { $link = '###'; } elseif ($source_lang_code !== $lang) { if ($is_in_progress && !$is_remote || $use_tm_editor && $translated_element_id) { $job_id = $this->job_factory->job_id_by_trid_and_lang($trid, $lang); if ($job_id) { $link = $this->get_link_for_existing_job($job_id); } else { $link = $this->get_link_for_new_job($trid, $lang, $source_lang_code); } } elseif ($use_tm_editor && !$translated_element_id) { $link = $this->get_link_for_new_job($trid, $lang, $source_lang_code); } } return $link; }
/** * @param string $link * @param int $post_id * @param string $lang * @param int $trid * * @return string */ public function filter_status_link($link, $post_id, $lang, $trid) { $this->maybe_load_stats($trid); $is_remote = $this->is_remote($trid, $lang); $is_in_progress = $this->is_in_progress($trid, $lang); $tm_editor_link_base_url = 'admin.php?page=' . WPML_TM_FOLDER . '/menu/translations-queue.php'; $use_tm_editor = $this->sitepress->get_setting('doc_translation_method'); if ($is_remote && $is_in_progress || $this->is_in_basket($trid, $lang) || !$this->is_lang_pair_allowed($lang)) { $link = '###'; } elseif (($source_lang_code = $this->post_translations->get_element_lang_code($post_id)) && $source_lang_code !== $lang) { if ($is_in_progress && !$is_remote || $use_tm_editor && $this->post_translations->get_element_id($lang, $trid)) { $link = $tm_editor_link_base_url . '&job_id=' . $this->job_factory->job_id_by_trid_and_lang($trid, $lang); } elseif ($use_tm_editor && !$this->post_translations->get_element_id($lang, $trid)) { $link = $tm_editor_link_base_url . '&trid=' . $trid . '&language_code=' . $lang . '&source_language_code=' . $source_lang_code; } } return $link; }