65 lines
1.6 KiB
PHP
65 lines
1.6 KiB
PHP
<?php
|
|
|
|
/**
|
|
* Class WPML_TM_Unsent_Jobs_Notice
|
|
*
|
|
* @group unsent-jobs-notification
|
|
*/
|
|
class WPML_TM_Unsent_Jobs {
|
|
|
|
/**
|
|
* @var WPML_TM_Blog_Translators
|
|
*/
|
|
private $blog_translators;
|
|
|
|
/**
|
|
* @var SitePress
|
|
*/
|
|
private $sitepress;
|
|
|
|
/**
|
|
* WPML_TM_Unsent_Jobs constructor.
|
|
*
|
|
* @param WPML_TM_Blog_Translators $blog_translators
|
|
* @param SitePress $sitepress
|
|
*/
|
|
public function __construct( WPML_TM_Blog_Translators $blog_translators, SitePress $sitepress ) {
|
|
$this->blog_translators = $blog_translators;
|
|
$this->sitepress = $sitepress;
|
|
}
|
|
|
|
public function add_hooks() {
|
|
add_action( 'wpml_tm_assign_job_notification', array( $this, 'prepare_unsent_job_for_notice' ) );
|
|
add_action( 'wpml_tm_new_job_notification', array( $this, 'prepare_unsent_job_for_notice' ), 10, 2 );
|
|
add_action( 'wpml_tm_local_string_sent', array( $this, 'prepare_unsent_job_for_notice' ) );
|
|
}
|
|
|
|
/**
|
|
* @param WPML_Translation_Job $job
|
|
* @param null $translator_id
|
|
*/
|
|
public function prepare_unsent_job_for_notice( WPML_Translation_Job $job, $translator_id = null ) {
|
|
|
|
if ( $translator_id ) {
|
|
$translators = array( get_userdata( $translator_id ) );
|
|
} else {
|
|
$translators = $this->blog_translators->get_blog_translators(
|
|
array(
|
|
'from' => $job->get_source_language_code(),
|
|
'to' => $job->get_language_code(),
|
|
)
|
|
);
|
|
}
|
|
|
|
foreach ( $translators as $translator ) {
|
|
|
|
$args = array(
|
|
'job' => $job,
|
|
'event' => WPML_User_Jobs_Notification_Settings::is_new_job_notification_enabled( $translator->ID ) ? 'sent' : 'unsent',
|
|
);
|
|
|
|
do_action( 'wpml_tm_jobs_translator_notification', $args );
|
|
}
|
|
}
|
|
}
|