ateApi = $ateApi; $this->ateJobs = $ateJobs; } public function checkJobStatus( $wpmlJobId ) { $ateJobId = $this->ateJobs->get_ate_job_id( $wpmlJobId ); $response = $this->ateApi->get_job_status_with_priority( $ateJobId ); if ( is_wp_error( $response ) ) { return []; } $encoded = wp_json_encode( $response ); if ( ! $encoded ) { return []; } return wpml_collect( json_decode( $encoded, true ) )->first( pipe( Obj::prop( 'ate_job_id' ), Relation::equals( $ateJobId ) ) ); } public function applyTranslation( $wpmlJobId, $postId, $xliffUrl ) { $ateJobId = $this->ateJobs->get_ate_job_id( $wpmlJobId ); $xliffContent = $this->ateApi->get_remote_xliff_content( $xliffUrl, [ 'jobId' => $wpmlJobId, 'ateJobId' => $ateJobId ] ); if ( ! function_exists( 'wpml_tm_save_data' ) ) { require_once WPML_TM_PATH . '/inc/wpml-private-actions.php'; } $prevPostStatus = Post::getStatus( $postId ); if ( $this->ateJobs->apply( $xliffContent ) ) { if ( Post::getStatus( $postId ) !== $prevPostStatus ) { Post::setStatus( $postId, $prevPostStatus ); } $response = $this->ateApi->confirm_received_job( $ateJobId ); return ! is_wp_error( $response ); } return false; } }