/**
 * @param WP_Post|WPML_Package $post
 * @param array                $target_languages
 * @param int                  $translator_id
 * @param int                  $job_id
 *
 *@return bool|int
 */
 function send_post($post, $target_languages, $translator_id, $job_id)
 {
     /** @var TranslationManagement $iclTranslationManagement */
     global $sitepress, $iclTranslationManagement;
     $this->maybe_init_translation_management($iclTranslationManagement);
     if (is_numeric($post)) {
         $post = get_post($post);
     }
     if (!$post) {
         return false;
     }
     $post_id = $post->ID;
     $post_type = $post->post_type;
     $element_type_prefix = $iclTranslationManagement->get_element_type_prefix_from_job_id($job_id);
     $element_type = $element_type_prefix . '_' . $post_type;
     $note = get_post_meta($post_id, '_icl_translator_note', true);
     if (!$note) {
         $note = null;
     }
     $err = false;
     $res = false;
     $source_language = $sitepress->get_language_for_element($post_id, $element_type);
     $target_language = is_array($target_languages) ? end($target_languages) : $target_languages;
     if (empty($target_language) || $target_language === $source_language) {
         return false;
     }
     $translation = $this->tmg->get_element_translation($post_id, $target_language, $element_type);
     if (!$translation) {
         // translated the first time
         $err = true;
     }
     if (!$err && ($translation->needs_update || $translation->status == ICL_TM_NOT_TRANSLATED || $translation->status == ICL_TM_WAITING_FOR_TRANSLATOR)) {
         $project = TranslationProxy::get_current_project();
         if ($iclTranslationManagement->is_external_type($element_type_prefix)) {
             $job_object = new WPML_External_Translation_Job($job_id);
         } else {
             $job_object = new WPML_Post_Translation_Job($job_id);
             $job_object->load_terms_from_post_into_job();
         }
         list($err, $project, $res) = $job_object->send_to_tp($project, $translator_id, $this->cms_id_helper, $this->tmg, $note);
         if ($err) {
             $this->enqueue_project_errors($project);
         }
     }
     return $err ? false : $res;
     //last $ret
 }