/** * Sends an email to all potential translators for the given job_id * * @param WPML_Translation_Job|int $job * * @return array */ public function new_job_notification_mail($job) { $mails = array(); list($manager_id, $job) = $this->get_mail_elements($job); if (!$job) { return $mails; } $job_id = $job->get_id(); $translators = $this->blog_translators->get_blog_translators(array('to' => $job->get_language_code())); /** @var WPML_Element_Translation_Job $job */ $edit_url = strtolower($job->get_type()) !== 'string' ? apply_filters('icl_job_edit_url', admin_url('admin.php?page=' . WPML_TM_FOLDER . '/menu/translations-queue.php&job_id=' . $job_id), $job_id) : ""; foreach ($translators as $t) { if ($manager_id == $t->ID || !$job->user_can_translate($t)) { continue; } $user_language = $this->sitepress->get_user_admin_language($t->ID); $this->sitepress->switch_locale($user_language); list($lang_from, $lang_to) = $this->get_lang_to_from($job, $user_language); if (strtolower($job->get_type()) !== 'string') { /** @var WPML_Element_Translation_Job $job */ $post_link = $job->get_url(true); $post_link = $post_link != "" ? sprintf(__("\nView the original document in %s here: %s\n", 'sitepress'), $lang_from, $post_link) : ""; } else { $post_link = ""; } $mail['to'] = $t->display_name . ' <' . $t->user_email . '>'; $mail['subject'] = sprintf(__('New translation job from %s', 'sitepress'), get_bloginfo('name')); $mail['body'] = sprintf(__("New job available from %s to %s.\n%s\nStart editing: %s", 'sitepress'), $lang_from, $lang_to, $post_link, $edit_url); $mail['type'] = 'translator'; $this->enqueue_mail($mail); $this->sitepress->switch_locale(); $mails[] = $mail; } return $mails; }