first commit

This commit is contained in:
2023-09-12 21:41:04 +02:00
commit 3361a7f053
13284 changed files with 2116755 additions and 0 deletions

View File

@@ -0,0 +1,158 @@
# WP Background Processing
WP Background Processing can be used to fire off non-blocking asynchronous requests or as a background processing tool, allowing you to queue tasks. Check out the [example plugin](https://github.com/A5hleyRich/wp-background-processing-example) or read the [accompanying article](https://deliciousbrains.com/background-processing-wordpress/).
Inspired by [TechCrunch WP Asynchronous Tasks](https://github.com/techcrunch/wp-async-task).
__Requires PHP 5.2+__
### Async Request
Async requests are useful for pushing slow one-off tasks such as sending emails to a background process. Once the request has been dispatched it will process in the background instantly.
Extend the `WP_Async_Request` class:
```php
class WP_Example_Request extends WP_Async_Request {
/**
* @var string
*/
protected $action = 'example_request';
/**
* Handle
*
* Override this method to perform any actions required
* during the async request.
*/
protected function handle() {
// Actions to perform
}
}
```
##### `protected $action`
Should be set to a unique name.
##### `protected function handle()`
Should contain any logic to perform during the non-blocking request. The data passed to the request will be accessible via `$_POST`.
##### Dispatching Requests
Instantiate your request:
`$this->example_request = new WP_Example_Request();`
Add data to the request if required:
`$this->example_request->data( array( 'value1' => $value1, 'value2' => $value2 ) );`
Fire off the request:
`$this->example_request->dispatch();`
Chaining is also supported:
`$this->example_request->data( array( 'data' => $data ) )->dispatch();`
### Background Process
Background processes work in a similar fashion to async requests but they allow you to queue tasks. Items pushed onto the queue will be processed in the background once the queue has been dispatched. Queues will also scale based on available server resources, so higher end servers will process more items per batch. Once a batch has completed the next batch will start instantly.
Health checks run by default every 5 minutes to ensure the queue is running when queued items exist. If the queue has failed it will be restarted.
Queues work on a first in first out basis, which allows additional items to be pushed to the queue even if its already processing.
Extend the `WP_Background_Process` class:
```php
class WP_Example_Process extends WP_Background_Process {
/**
* @var string
*/
protected $action = 'example_process';
/**
* Task
*
* Override this method to perform any actions required on each
* queue item. Return the modified item for further processing
* in the next pass through. Or, return false to remove the
* item from the queue.
*
* @param mixed $item Queue item to iterate over
*
* @return mixed
*/
protected function task( $item ) {
// Actions to perform
return false;
}
/**
* Complete
*
* Override if applicable, but ensure that the below actions are
* performed, or, call parent::complete().
*/
protected function complete() {
parent::complete();
// Show notice to user or perform some other arbitrary task...
}
}
```
##### `protected $action`
Should be set to a unique name.
##### `protected function task( $item )`
Should contain any logic to perform on the queued item. Return `false` to remove the item from the queue or return `$item` to push it back onto the queue for further processing. If the item has been modified and is pushed back onto the queue the current state will be saved before the batch is exited.
##### `protected function complete()`
Optionally contain any logic to perform once the queue has completed.
##### Dispatching Processes
Instantiate your process:
`$this->example_process = new WP_Example_Process();`
Push items to the queue:
```php
foreach ( $items as $item ) {
$this->example_process->push_to_queue( $item );
}
```
Save and dispatch the queue:
`$this->example_process->save()->dispatch();`
### BasicAuth
If your site is behind BasicAuth, both async requests and background processes will fail to complete. This is because WP Background Processing relies on the [WordPress HTTP API](http://codex.wordpress.org/HTTP_API), which requires you to attach your BasicAuth credentials to requests. The easiest way to do this is using the following filter:
```php
function wpbp_http_request_args( $r, $url ) {
$r['headers']['Authorization'] = 'Basic ' . base64_encode( USERNAME . ':' . PASSWORD );
return $r;
}
add_filter( 'http_request_args', 'wpbp_http_request_args', 10, 2);
```
## License
[GPLv2+](http://www.gnu.org/licenses/gpl-2.0.html)

View File

@@ -0,0 +1,163 @@
<?php
/**
* WP Async Request
*
* @package WP-Background-Processing
*/
if ( ! class_exists( 'WP_Async_Request' ) ) {
/**
* Abstract WP_Async_Request class.
*
* @abstract
*/
abstract class WP_Async_Request {
/**
* Prefix
*
* (default value: 'wp')
*
* @var string
* @access protected
*/
protected $prefix = 'wp';
/**
* Action
*
* (default value: 'async_request')
*
* @var string
* @access protected
*/
protected $action = 'async_request';
/**
* Identifier
*
* @var mixed
* @access protected
*/
protected $identifier;
/**
* Data
*
* (default value: array())
*
* @var array
* @access protected
*/
protected $data = array();
/**
* Initiate new async request
*/
public function __construct() {
$this->identifier = $this->prefix . '_' . $this->action;
add_action( 'wp_ajax_' . $this->identifier, array( $this, 'maybe_handle' ) );
add_action( 'wp_ajax_nopriv_' . $this->identifier, array( $this, 'maybe_handle' ) );
}
/**
* Set data used during the request
*
* @param array $data Data.
*
* @return $this
*/
public function data( $data ) {
$this->data = $data;
return $this;
}
/**
* Dispatch the async request
*
* @return array|WP_Error
*/
public function dispatch() {
$url = add_query_arg( $this->get_query_args(), $this->get_query_url() );
$args = $this->get_post_args();
return wp_remote_post( esc_url_raw( $url ), $args );
}
/**
* Get query args
*
* @return array
*/
protected function get_query_args() {
if ( property_exists( $this, 'query_args' ) ) {
return $this->query_args;
}
return array(
'action' => $this->identifier,
'nonce' => wp_create_nonce( $this->identifier ),
);
}
/**
* Get query URL
*
* @return string
*/
protected function get_query_url() {
if ( property_exists( $this, 'query_url' ) ) {
return $this->query_url;
}
return admin_url( 'admin-ajax.php' );
}
/**
* Get post args
*
* @return array
*/
protected function get_post_args() {
if ( property_exists( $this, 'post_args' ) ) {
return $this->post_args;
}
return array(
'timeout' => 0.01,
'blocking' => false,
'body' => $this->data,
'cookies' => $_COOKIE,
'sslverify' => apply_filters( 'https_local_ssl_verify', false ),
);
}
/**
* Maybe handle
*
* Check for correct nonce and pass to handler.
*/
public function maybe_handle() {
// Don't lock up other requests while processing
session_write_close();
check_ajax_referer( $this->identifier, 'nonce' );
$this->handle();
wp_die();
}
/**
* Handle
*
* Override this method to perform any actions required
* during the async request.
*/
abstract protected function handle();
}
}

View File

@@ -0,0 +1,506 @@
<?php
/**
* WP Background Process
*
* @package WP-Background-Processing
*/
if ( ! class_exists( 'WP_Background_Process' ) ) {
/**
* Abstract WP_Background_Process class.
*
* @abstract
* @extends WP_Async_Request
*/
abstract class WP_Background_Process extends WP_Async_Request {
/**
* Action
*
* (default value: 'background_process')
*
* @var string
* @access protected
*/
protected $action = 'background_process';
/**
* Start time of current process.
*
* (default value: 0)
*
* @var int
* @access protected
*/
protected $start_time = 0;
/**
* Cron_hook_identifier
*
* @var mixed
* @access protected
*/
protected $cron_hook_identifier;
/**
* Cron_interval_identifier
*
* @var mixed
* @access protected
*/
protected $cron_interval_identifier;
/**
* Initiate new background process
*/
public function __construct() {
parent::__construct();
$this->cron_hook_identifier = $this->identifier . '_cron';
$this->cron_interval_identifier = $this->identifier . '_cron_interval';
add_action( $this->cron_hook_identifier, array( $this, 'handle_cron_healthcheck' ) );
add_filter( 'cron_schedules', array( $this, 'schedule_cron_healthcheck' ) );
}
/**
* Dispatch
*
* @access public
* @return void
*/
public function dispatch() {
// Schedule the cron healthcheck.
$this->schedule_event();
// Perform remote post.
return parent::dispatch();
}
/**
* Push to queue
*
* @param mixed $data Data.
*
* @return $this
*/
public function push_to_queue( $data ) {
$this->data[] = $data;
return $this;
}
/**
* Save queue
*
* @return $this
*/
public function save() {
$key = $this->generate_key();
if ( ! empty( $this->data ) ) {
update_site_option( $key, $this->data );
}
return $this;
}
/**
* Update queue
*
* @param string $key Key.
* @param array $data Data.
*
* @return $this
*/
public function update( $key, $data ) {
if ( ! empty( $data ) ) {
update_site_option( $key, $data );
}
return $this;
}
/**
* Delete queue
*
* @param string $key Key.
*
* @return $this
*/
public function delete( $key ) {
delete_site_option( $key );
return $this;
}
/**
* Generate key
*
* Generates a unique key based on microtime. Queue items are
* given a unique key so that they can be merged upon save.
*
* @param int $length Length.
*
* @return string
*/
protected function generate_key( $length = 64 ) {
$unique = md5( microtime() . rand() );
$prepend = $this->identifier . '_batch_';
return substr( $prepend . $unique, 0, $length );
}
/**
* Maybe process queue
*
* Checks whether data exists within the queue and that
* the process is not already running.
*/
public function maybe_handle() {
// Don't lock up other requests while processing
session_write_close();
if ( $this->is_process_running() ) {
// Background process already running.
wp_die();
}
if ( $this->is_queue_empty() ) {
// No data to process.
wp_die();
}
check_ajax_referer( $this->identifier, 'nonce' );
$this->handle();
wp_die();
}
/**
* Is queue empty
*
* @return bool
*/
protected function is_queue_empty() {
global $wpdb;
$table = $wpdb->options;
$column = 'option_name';
if ( is_multisite() ) {
$table = $wpdb->sitemeta;
$column = 'meta_key';
}
$key = $wpdb->esc_like( $this->identifier . '_batch_' ) . '%';
$count = $wpdb->get_var( $wpdb->prepare( "
SELECT COUNT(*)
FROM {$table}
WHERE {$column} LIKE %s
", $key ) );
return ( $count > 0 ) ? false : true;
}
/**
* Is process running
*
* Check whether the current process is already running
* in a background process.
*/
protected function is_process_running() {
if ( get_site_transient( $this->identifier . '_process_lock' ) ) {
// Process already running.
return true;
}
return false;
}
/**
* Lock process
*
* Lock the process so that multiple instances can't run simultaneously.
* Override if applicable, but the duration should be greater than that
* defined in the time_exceeded() method.
*/
protected function lock_process() {
$this->start_time = time(); // Set start time of current process.
$lock_duration = ( property_exists( $this, 'queue_lock_time' ) ) ? $this->queue_lock_time : 60; // 1 minute
$lock_duration = apply_filters( $this->identifier . '_queue_lock_time', $lock_duration );
set_site_transient( $this->identifier . '_process_lock', microtime(), $lock_duration );
}
/**
* Unlock process
*
* Unlock the process so that other instances can spawn.
*
* @return $this
*/
protected function unlock_process() {
delete_site_transient( $this->identifier . '_process_lock' );
return $this;
}
/**
* Get batch
*
* @return stdClass Return the first batch from the queue
*/
protected function get_batch() {
global $wpdb;
$table = $wpdb->options;
$column = 'option_name';
$key_column = 'option_id';
$value_column = 'option_value';
if ( is_multisite() ) {
$table = $wpdb->sitemeta;
$column = 'meta_key';
$key_column = 'meta_id';
$value_column = 'meta_value';
}
$key = $wpdb->esc_like( $this->identifier . '_batch_' ) . '%';
$query = $wpdb->get_row( $wpdb->prepare( "
SELECT *
FROM {$table}
WHERE {$column} LIKE %s
ORDER BY {$key_column} ASC
LIMIT 1
", $key ) );
$batch = new stdClass();
$batch->key = $query->$column;
$batch->data = maybe_unserialize( $query->$value_column );
return $batch;
}
/**
* Handle
*
* Pass each queue item to the task handler, while remaining
* within server memory and time limit constraints.
*/
protected function handle() {
$this->lock_process();
do {
$batch = $this->get_batch();
foreach ( $batch->data as $key => $value ) {
$task = $this->task( $value );
if ( false !== $task ) {
$batch->data[ $key ] = $task;
} else {
unset( $batch->data[ $key ] );
}
if ( $this->time_exceeded() || $this->memory_exceeded() ) {
// Batch limits reached.
break;
}
}
// Update or delete current batch.
if ( ! empty( $batch->data ) ) {
$this->update( $batch->key, $batch->data );
} else {
$this->delete( $batch->key );
}
} while ( ! $this->time_exceeded() && ! $this->memory_exceeded() && ! $this->is_queue_empty() );
$this->unlock_process();
// Start next batch or complete process.
if ( ! $this->is_queue_empty() ) {
$this->dispatch();
} else {
$this->complete();
}
wp_die();
}
/**
* Memory exceeded
*
* Ensures the batch process never exceeds 90%
* of the maximum WordPress memory.
*
* @return bool
*/
protected function memory_exceeded() {
$memory_limit = $this->get_memory_limit() * 0.9; // 90% of max memory
$current_memory = memory_get_usage( true );
$return = false;
if ( $current_memory >= $memory_limit ) {
$return = true;
}
return apply_filters( $this->identifier . '_memory_exceeded', $return );
}
/**
* Get memory limit
*
* @return int
*/
protected function get_memory_limit() {
if ( function_exists( 'ini_get' ) ) {
$memory_limit = ini_get( 'memory_limit' );
} else {
// Sensible default.
$memory_limit = '128M';
}
if ( ! $memory_limit || -1 === intval( $memory_limit ) ) {
// Unlimited, set to 32GB.
$memory_limit = '32000M';
}
return intval( $memory_limit ) * 1024 * 1024;
}
/**
* Time exceeded.
*
* Ensures the batch never exceeds a sensible time limit.
* A timeout limit of 30s is common on shared hosting.
*
* @return bool
*/
protected function time_exceeded() {
$finish = $this->start_time + apply_filters( $this->identifier . '_default_time_limit', 20 ); // 20 seconds
$return = false;
if ( time() >= $finish ) {
$return = true;
}
return apply_filters( $this->identifier . '_time_exceeded', $return );
}
/**
* Complete.
*
* Override if applicable, but ensure that the below actions are
* performed, or, call parent::complete().
*/
protected function complete() {
// Unschedule the cron healthcheck.
$this->clear_scheduled_event();
}
/**
* Schedule cron healthcheck
*
* @access public
* @param mixed $schedules Schedules.
* @return mixed
*/
public function schedule_cron_healthcheck( $schedules ) {
$interval = apply_filters( $this->identifier . '_cron_interval', 5 );
if ( property_exists( $this, 'cron_interval' ) ) {
$interval = apply_filters( $this->identifier . '_cron_interval', $this->cron_interval );
}
// Adds every 5 minutes to the existing schedules.
$schedules[ $this->identifier . '_cron_interval' ] = array(
'interval' => MINUTE_IN_SECONDS * $interval,
'display' => sprintf( __( 'Every %d Minutes' ), $interval ),
);
return $schedules;
}
/**
* Handle cron healthcheck
*
* Restart the background process if not already running
* and data exists in the queue.
*/
public function handle_cron_healthcheck() {
if ( $this->is_process_running() ) {
// Background process already running.
exit;
}
if ( $this->is_queue_empty() ) {
// No data to process.
$this->clear_scheduled_event();
exit;
}
$this->handle();
exit;
}
/**
* Schedule event
*/
protected function schedule_event() {
if ( ! wp_next_scheduled( $this->cron_hook_identifier ) ) {
wp_schedule_event( time(), $this->cron_interval_identifier, $this->cron_hook_identifier );
}
}
/**
* Clear scheduled event
*/
protected function clear_scheduled_event() {
$timestamp = wp_next_scheduled( $this->cron_hook_identifier );
if ( $timestamp ) {
wp_unschedule_event( $timestamp, $this->cron_hook_identifier );
}
}
/**
* Cancel Process
*
* Stop processing queue items, clear cronjob and delete batch.
*
*/
public function cancel_process() {
if ( ! $this->is_queue_empty() ) {
$batch = $this->get_batch();
$this->delete( $batch->key );
wp_clear_scheduled_hook( $this->cron_hook_identifier );
}
}
/**
* Task
*
* Override this method to perform any actions required on each
* queue item. Return the modified item for further processing
* in the next pass through. Or, return false to remove the
* item from the queue.
*
* @param mixed $item Queue item to iterate over.
*
* @return mixed
*/
abstract protected function task( $item );
}
}

View File

@@ -0,0 +1,20 @@
<?php
/**
* WP-Background Processing
*
* @package WP-Background-Processing
*/
/*
Plugin Name: WP Background Processing
Plugin URI: https://github.com/A5hleyRich/wp-background-processing
Description: Asynchronous requests and background processing in WordPress.
Author: Delicious Brains Inc.
Version: 1.0
Author URI: https://deliciousbrains.com/
GitHub Plugin URI: https://github.com/A5hleyRich/wp-background-processing
GitHub Branch: master
*/
require_once plugin_dir_path( __FILE__ ) . 'classes/wp-async-request.php';
require_once plugin_dir_path( __FILE__ ) . 'classes/wp-background-process.php';

View File

@@ -0,0 +1,7 @@
<?php
// autoload.php @generated by Composer
require_once __DIR__ . '/composer/autoload_real.php';
return ComposerAutoloaderInitcf33eb903f9fa638ba4a6cac437df73a::getLoader();

View File

@@ -0,0 +1,445 @@
<?php
/*
* This file is part of Composer.
*
* (c) Nils Adermann <naderman@naderman.de>
* Jordi Boggiano <j.boggiano@seld.be>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Composer\Autoload;
/**
* ClassLoader implements a PSR-0, PSR-4 and classmap class loader.
*
* $loader = new \Composer\Autoload\ClassLoader();
*
* // register classes with namespaces
* $loader->add('Symfony\Component', __DIR__.'/component');
* $loader->add('Symfony', __DIR__.'/framework');
*
* // activate the autoloader
* $loader->register();
*
* // to enable searching the include path (eg. for PEAR packages)
* $loader->setUseIncludePath(true);
*
* In this example, if you try to use a class in the Symfony\Component
* namespace or one of its children (Symfony\Component\Console for instance),
* the autoloader will first look for the class under the component/
* directory, and it will then fallback to the framework/ directory if not
* found before giving up.
*
* This class is loosely based on the Symfony UniversalClassLoader.
*
* @author Fabien Potencier <fabien@symfony.com>
* @author Jordi Boggiano <j.boggiano@seld.be>
* @see http://www.php-fig.org/psr/psr-0/
* @see http://www.php-fig.org/psr/psr-4/
*/
class ClassLoader
{
// PSR-4
private $prefixLengthsPsr4 = array();
private $prefixDirsPsr4 = array();
private $fallbackDirsPsr4 = array();
// PSR-0
private $prefixesPsr0 = array();
private $fallbackDirsPsr0 = array();
private $useIncludePath = false;
private $classMap = array();
private $classMapAuthoritative = false;
private $missingClasses = array();
private $apcuPrefix;
public function getPrefixes()
{
if (!empty($this->prefixesPsr0)) {
return call_user_func_array('array_merge', $this->prefixesPsr0);
}
return array();
}
public function getPrefixesPsr4()
{
return $this->prefixDirsPsr4;
}
public function getFallbackDirs()
{
return $this->fallbackDirsPsr0;
}
public function getFallbackDirsPsr4()
{
return $this->fallbackDirsPsr4;
}
public function getClassMap()
{
return $this->classMap;
}
/**
* @param array $classMap Class to filename map
*/
public function addClassMap(array $classMap)
{
if ($this->classMap) {
$this->classMap = array_merge($this->classMap, $classMap);
} else {
$this->classMap = $classMap;
}
}
/**
* Registers a set of PSR-0 directories for a given prefix, either
* appending or prepending to the ones previously set for this prefix.
*
* @param string $prefix The prefix
* @param array|string $paths The PSR-0 root directories
* @param bool $prepend Whether to prepend the directories
*/
public function add($prefix, $paths, $prepend = false)
{
if (!$prefix) {
if ($prepend) {
$this->fallbackDirsPsr0 = array_merge(
(array) $paths,
$this->fallbackDirsPsr0
);
} else {
$this->fallbackDirsPsr0 = array_merge(
$this->fallbackDirsPsr0,
(array) $paths
);
}
return;
}
$first = $prefix[0];
if (!isset($this->prefixesPsr0[$first][$prefix])) {
$this->prefixesPsr0[$first][$prefix] = (array) $paths;
return;
}
if ($prepend) {
$this->prefixesPsr0[$first][$prefix] = array_merge(
(array) $paths,
$this->prefixesPsr0[$first][$prefix]
);
} else {
$this->prefixesPsr0[$first][$prefix] = array_merge(
$this->prefixesPsr0[$first][$prefix],
(array) $paths
);
}
}
/**
* Registers a set of PSR-4 directories for a given namespace, either
* appending or prepending to the ones previously set for this namespace.
*
* @param string $prefix The prefix/namespace, with trailing '\\'
* @param array|string $paths The PSR-4 base directories
* @param bool $prepend Whether to prepend the directories
*
* @throws \InvalidArgumentException
*/
public function addPsr4($prefix, $paths, $prepend = false)
{
if (!$prefix) {
// Register directories for the root namespace.
if ($prepend) {
$this->fallbackDirsPsr4 = array_merge(
(array) $paths,
$this->fallbackDirsPsr4
);
} else {
$this->fallbackDirsPsr4 = array_merge(
$this->fallbackDirsPsr4,
(array) $paths
);
}
} elseif (!isset($this->prefixDirsPsr4[$prefix])) {
// Register directories for a new namespace.
$length = strlen($prefix);
if ('\\' !== $prefix[$length - 1]) {
throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator.");
}
$this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;
$this->prefixDirsPsr4[$prefix] = (array) $paths;
} elseif ($prepend) {
// Prepend directories for an already registered namespace.
$this->prefixDirsPsr4[$prefix] = array_merge(
(array) $paths,
$this->prefixDirsPsr4[$prefix]
);
} else {
// Append directories for an already registered namespace.
$this->prefixDirsPsr4[$prefix] = array_merge(
$this->prefixDirsPsr4[$prefix],
(array) $paths
);
}
}
/**
* Registers a set of PSR-0 directories for a given prefix,
* replacing any others previously set for this prefix.
*
* @param string $prefix The prefix
* @param array|string $paths The PSR-0 base directories
*/
public function set($prefix, $paths)
{
if (!$prefix) {
$this->fallbackDirsPsr0 = (array) $paths;
} else {
$this->prefixesPsr0[$prefix[0]][$prefix] = (array) $paths;
}
}
/**
* Registers a set of PSR-4 directories for a given namespace,
* replacing any others previously set for this namespace.
*
* @param string $prefix The prefix/namespace, with trailing '\\'
* @param array|string $paths The PSR-4 base directories
*
* @throws \InvalidArgumentException
*/
public function setPsr4($prefix, $paths)
{
if (!$prefix) {
$this->fallbackDirsPsr4 = (array) $paths;
} else {
$length = strlen($prefix);
if ('\\' !== $prefix[$length - 1]) {
throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator.");
}
$this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;
$this->prefixDirsPsr4[$prefix] = (array) $paths;
}
}
/**
* Turns on searching the include path for class files.
*
* @param bool $useIncludePath
*/
public function setUseIncludePath($useIncludePath)
{
$this->useIncludePath = $useIncludePath;
}
/**
* Can be used to check if the autoloader uses the include path to check
* for classes.
*
* @return bool
*/
public function getUseIncludePath()
{
return $this->useIncludePath;
}
/**
* Turns off searching the prefix and fallback directories for classes
* that have not been registered with the class map.
*
* @param bool $classMapAuthoritative
*/
public function setClassMapAuthoritative($classMapAuthoritative)
{
$this->classMapAuthoritative = $classMapAuthoritative;
}
/**
* Should class lookup fail if not found in the current class map?
*
* @return bool
*/
public function isClassMapAuthoritative()
{
return $this->classMapAuthoritative;
}
/**
* APCu prefix to use to cache found/not-found classes, if the extension is enabled.
*
* @param string|null $apcuPrefix
*/
public function setApcuPrefix($apcuPrefix)
{
$this->apcuPrefix = function_exists('apcu_fetch') && filter_var(ini_get('apc.enabled'), FILTER_VALIDATE_BOOLEAN) ? $apcuPrefix : null;
}
/**
* The APCu prefix in use, or null if APCu caching is not enabled.
*
* @return string|null
*/
public function getApcuPrefix()
{
return $this->apcuPrefix;
}
/**
* Registers this instance as an autoloader.
*
* @param bool $prepend Whether to prepend the autoloader or not
*/
public function register($prepend = false)
{
spl_autoload_register(array($this, 'loadClass'), true, $prepend);
}
/**
* Unregisters this instance as an autoloader.
*/
public function unregister()
{
spl_autoload_unregister(array($this, 'loadClass'));
}
/**
* Loads the given class or interface.
*
* @param string $class The name of the class
* @return bool|null True if loaded, null otherwise
*/
public function loadClass($class)
{
if ($file = $this->findFile($class)) {
includeFile($file);
return true;
}
}
/**
* Finds the path to the file where the class is defined.
*
* @param string $class The name of the class
*
* @return string|false The path if found, false otherwise
*/
public function findFile($class)
{
// class map lookup
if (isset($this->classMap[$class])) {
return $this->classMap[$class];
}
if ($this->classMapAuthoritative || isset($this->missingClasses[$class])) {
return false;
}
if (null !== $this->apcuPrefix) {
$file = apcu_fetch($this->apcuPrefix.$class, $hit);
if ($hit) {
return $file;
}
}
$file = $this->findFileWithExtension($class, '.php');
// Search for Hack files if we are running on HHVM
if (false === $file && defined('HHVM_VERSION')) {
$file = $this->findFileWithExtension($class, '.hh');
}
if (null !== $this->apcuPrefix) {
apcu_add($this->apcuPrefix.$class, $file);
}
if (false === $file) {
// Remember that this class does not exist.
$this->missingClasses[$class] = true;
}
return $file;
}
private function findFileWithExtension($class, $ext)
{
// PSR-4 lookup
$logicalPathPsr4 = strtr($class, '\\', DIRECTORY_SEPARATOR) . $ext;
$first = $class[0];
if (isset($this->prefixLengthsPsr4[$first])) {
$subPath = $class;
while (false !== $lastPos = strrpos($subPath, '\\')) {
$subPath = substr($subPath, 0, $lastPos);
$search = $subPath . '\\';
if (isset($this->prefixDirsPsr4[$search])) {
$pathEnd = DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $lastPos + 1);
foreach ($this->prefixDirsPsr4[$search] as $dir) {
if (file_exists($file = $dir . $pathEnd)) {
return $file;
}
}
}
}
}
// PSR-4 fallback dirs
foreach ($this->fallbackDirsPsr4 as $dir) {
if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4)) {
return $file;
}
}
// PSR-0 lookup
if (false !== $pos = strrpos($class, '\\')) {
// namespaced class name
$logicalPathPsr0 = substr($logicalPathPsr4, 0, $pos + 1)
. strtr(substr($logicalPathPsr4, $pos + 1), '_', DIRECTORY_SEPARATOR);
} else {
// PEAR-like class name
$logicalPathPsr0 = strtr($class, '_', DIRECTORY_SEPARATOR) . $ext;
}
if (isset($this->prefixesPsr0[$first])) {
foreach ($this->prefixesPsr0[$first] as $prefix => $dirs) {
if (0 === strpos($class, $prefix)) {
foreach ($dirs as $dir) {
if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) {
return $file;
}
}
}
}
}
// PSR-0 fallback dirs
foreach ($this->fallbackDirsPsr0 as $dir) {
if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) {
return $file;
}
}
// PSR-0 include paths.
if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) {
return $file;
}
return false;
}
}
/**
* Scope isolated include.
*
* Prevents access to $this/self from included files.
*/
function includeFile($file)
{
include $file;
}

View File

@@ -0,0 +1,21 @@
Copyright (c) Nils Adermann, Jordi Boggiano
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is furnished
to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.

View File

@@ -0,0 +1,636 @@
<?php
// autoload_classmap.php @generated by Composer
$vendorDir = dirname(dirname(__FILE__));
$baseDir = dirname($vendorDir);
return array(
'IWPML_TM_Admin_Section' => $baseDir . '/classes/menu/iwpml-tm-admin-section.php',
'IWPML_TM_Admin_Section_Factory' => $baseDir . '/classes/menu/iwpml-tm-admin-section-factory.php',
'IWPML_TM_Count' => $baseDir . '/classes/words-count/count/iwpml-tm-count.php',
'IWPML_TM_Word_Calculator_Post' => $baseDir . '/classes/words-count/processor/calculator/post/iwpml-tm-word-calculator-post.php',
'IWPML_TM_Word_Count_Queue_Items' => $baseDir . '/classes/words-count/queue/items/iwpml-tm-word-count-queue-items.php',
'IWPML_TM_Word_Count_Set' => $baseDir . '/classes/words-count/processor/iwpml-tm-word-count-set.php',
'IWPML_Translation_Roles_View' => $baseDir . '/classes/menu/translation-roles/class-wpml-translation-roles-view.php',
'SitePress_Table' => $baseDir . '/menu/sitepress-table.class.php',
'SitePress_Table_Basket' => $baseDir . '/classes/menu/translation-basket/sitepress-table-basket.class.php',
'TranslationProxy' => $baseDir . '/inc/translation-proxy/translationproxy.class.php',
'TranslationProxy_Api' => $baseDir . '/inc/translation-proxy/translationproxy-api.class.php',
'TranslationProxy_Basket' => $baseDir . '/inc/translation-proxy/translationproxy-basket.class.php',
'TranslationProxy_Batch' => $baseDir . '/inc/translation-proxy/translationproxy-batch.class.php',
'TranslationProxy_Popup' => $baseDir . '/inc/translation-proxy/translationproxy-popup.class.php',
'TranslationProxy_Project' => $baseDir . '/inc/translation-proxy/translationproxy-project.class.php',
'TranslationProxy_Service' => $baseDir . '/inc/translation-proxy/translationproxy-service.class.php',
'TranslationProxy_Translator' => $baseDir . '/inc/translation-proxy/translationproxy-translator.class.php',
'WPMLTranslationProxyApiException' => $baseDir . '/classes/translation-proxy/api/class-wpml-translation-proxy-api-exception.php',
'WPML\\TM\\ATE\\ClonedSites\\ApiCommunication' => $baseDir . '/classes/ATE/API/ClonedSites/ApiCommunication.php',
'WPML\\TM\\ATE\\ClonedSites\\FingerprintGenerator' => $baseDir . '/classes/ATE/API/ClonedSites/FingerprintGenerator.php',
'WPML\\TM\\ATE\\ClonedSites\\Lock' => $baseDir . '/classes/ATE/API/ClonedSites/Lock.php',
'WPML\\TM\\ATE\\ClonedSites\\Report' => $baseDir . '/classes/ATE/API/ClonedSites/Report.php',
'WPML\\TM\\ATE\\ClonedSites\\ReportAjax' => $baseDir . '/classes/ATE/API/ClonedSites/ReportAjax.php',
'WPML\\TM\\ATE\\Download\\Consumer' => $baseDir . '/classes/ATE/Download/Consumer.php',
'WPML\\TM\\ATE\\Download\\Job' => $baseDir . '/classes/ATE/Download/Job.php',
'WPML\\TM\\ATE\\Download\\Process' => $baseDir . '/classes/ATE/Download/Process.php',
'WPML\\TM\\ATE\\Download\\Queue' => $baseDir . '/classes/ATE/Download/Queue.php',
'WPML\\TM\\ATE\\Download\\Result' => $baseDir . '/classes/ATE/Download/Result.php',
'WPML\\TM\\ATE\\Hooks\\ReturnedJobActions' => $baseDir . '/classes/ATE/Hooks/ReturnedJobActions.php',
'WPML\\TM\\ATE\\Hooks\\ReturnedJobActionsFactory' => $baseDir . '/classes/ATE/Hooks/ReturnedJobActionsFactory.php',
'WPML\\TM\\ATE\\JobRecord' => $baseDir . '/classes/ATE/JobRecord.php',
'WPML\\TM\\ATE\\JobRecords' => $baseDir . '/classes/ATE/JobRecords.php',
'WPML\\TM\\ATE\\Log\\Entry' => $baseDir . '/classes/ATE/Log/Entry.php',
'WPML\\TM\\ATE\\Log\\ErrorEvents' => $baseDir . '/classes/ATE/Log/ErrorEvents.php',
'WPML\\TM\\ATE\\Log\\Hooks' => $baseDir . '/classes/ATE/Log/Hooks.php',
'WPML\\TM\\ATE\\Log\\Storage' => $baseDir . '/classes/ATE/Log/Storage.php',
'WPML\\TM\\ATE\\Log\\View' => $baseDir . '/classes/ATE/Log/View.php',
'WPML\\TM\\ATE\\Log\\ViewFactory' => $baseDir . '/classes/ATE/Log/ViewFactory.php',
'WPML\\TM\\ATE\\REST\\Download' => $baseDir . '/classes/ATE/REST/Download.php',
'WPML\\TM\\ATE\\REST\\Sync' => $baseDir . '/classes/ATE/REST/Sync.php',
'WPML\\TM\\ATE\\ReturnedJobsQueue' => $baseDir . '/classes/ATE/ReturnedJobsQueue.php',
'WPML\\TM\\ATE\\Sync\\Arguments' => $baseDir . '/classes/ATE/Sync/Arguments.php',
'WPML\\TM\\ATE\\Sync\\Factory' => $baseDir . '/classes/ATE/Sync/Factory.php',
'WPML\\TM\\ATE\\Sync\\Process' => $baseDir . '/classes/ATE/Sync/Process.php',
'WPML\\TM\\ATE\\Sync\\Result' => $baseDir . '/classes/ATE/Sync/Result.php',
'WPML\\TM\\ATE\\Sync\\Trigger' => $baseDir . '/classes/ATE/Sync/Trigger.php',
'WPML\\TM\\AdminBar\\Hooks' => $baseDir . '/classes/admin-bar/Hooks.php',
'WPML\\TM\\Container\\Config' => $baseDir . '/classes/container/class-config.php',
'WPML\\TM\\Editor\\ClassicEditorActions' => $baseDir . '/classes/editor/ClassicEditorActions.php',
'WPML\\TM\\Geolocalization' => $baseDir . '/classes/Geolocalization.php',
'WPML\\TM\\Jobs\\ExtraFieldDataInEditor' => $baseDir . '/classes/translation-jobs/ExtraFieldDataInEditor.php',
'WPML\\TM\\Jobs\\ExtraFieldDataInEditorFactory' => $baseDir . '/classes/translation-jobs/ExtraFieldDataInEditorFactory.php',
'WPML\\TM\\Jobs\\FieldId' => $baseDir . '/classes/translation-jobs/FieldId.php',
'WPML\\TM\\Jobs\\Query\\AbstractQuery' => $baseDir . '/classes/jobs/query/AbstractQuery.php',
'WPML\\TM\\Jobs\\Query\\CompositeQuery' => $baseDir . '/classes/jobs/query/CompositeQuery.php',
'WPML\\TM\\Jobs\\Query\\LimitQueryHelper' => $baseDir . '/classes/jobs/query/LimitQueryHelper.php',
'WPML\\TM\\Jobs\\Query\\OrderQueryHelper' => $baseDir . '/classes/jobs/query/OrderQueryHelper.php',
'WPML\\TM\\Jobs\\Query\\PackageQuery' => $baseDir . '/classes/jobs/query/PackageQuery.php',
'WPML\\TM\\Jobs\\Query\\PostQuery' => $baseDir . '/classes/jobs/query/PostQuery.php',
'WPML\\TM\\Jobs\\Query\\Query' => $baseDir . '/classes/jobs/query/Query.php',
'WPML\\TM\\Jobs\\Query\\QueryBuilder' => $baseDir . '/classes/jobs/query/QueryBuilder.php',
'WPML\\TM\\Jobs\\Query\\StringQuery' => $baseDir . '/classes/jobs/query/StringQuery.php',
'WPML\\TM\\Jobs\\Query\\StringsBatchQuery' => $baseDir . '/classes/jobs/query/StringsBatchQuery.php',
'WPML\\TM\\Jobs\\TermMeta' => $baseDir . '/classes/translation-jobs/TermMeta.php',
'WPML\\TM\\Jobs\\Utils' => $baseDir . '/classes/translation-jobs/Utils.php',
'WPML\\TM\\Jobs\\Utils\\ElementLink' => $baseDir . '/classes/jobs/utils/ElementLink.php',
'WPML\\TM\\Jobs\\Utils\\ElementLinkFactory' => $baseDir . '/classes/jobs/utils/ElementLinkFactory.php',
'WPML\\TM\\Menu\\Dashboard\\PostJobsRepository' => $baseDir . '/classes/menu/dashboard/PostJobsRepository.php',
'WPML\\TM\\Menu\\TranslationBasket\\Strings' => $baseDir . '/classes/menu/translation-basket/Strings.php',
'WPML\\TM\\Menu\\TranslationBasket\\Utility' => $baseDir . '/classes/menu/translation-basket/Utility.php',
'WPML\\TM\\Menu\\TranslationQueue\\CloneJobs' => $baseDir . '/classes/menu/translation-queue/CloneJobs.php',
'WPML\\TM\\Menu\\TranslationRoles\\RoleValidator' => $baseDir . '/classes/menu/translation-roles/RoleValidator.php',
'WPML\\TM\\Menu\\TranslationServices\\ActivationAjax' => $baseDir . '/classes/menu/translation-services/ActivationAjax.php',
'WPML\\TM\\Menu\\TranslationServices\\ActivationAjaxFactory' => $baseDir . '/classes/menu/translation-services/ActivationAjaxFactory.php',
'WPML\\TM\\Menu\\TranslationServices\\ActiveServiceRepository' => $baseDir . '/classes/menu/translation-services/ActiveServiceRepository.php',
'WPML\\TM\\Menu\\TranslationServices\\ActiveServiceTemplate' => $baseDir . '/classes/menu/translation-services/ActiveServiceTemplate.php',
'WPML\\TM\\Menu\\TranslationServices\\ActiveServiceTemplateFactory' => $baseDir . '/classes/menu/translation-services/ActiveServiceTemplateFactory.php',
'WPML\\TM\\Menu\\TranslationServices\\AuthenticationAjax' => $baseDir . '/classes/menu/translation-services/AuthenticationAjax.php',
'WPML\\TM\\Menu\\TranslationServices\\AuthenticationAjaxFactory' => $baseDir . '/classes/menu/translation-services/AuthenticationAjaxFactory.php',
'WPML\\TM\\Menu\\TranslationServices\\MainLayoutTemplate' => $baseDir . '/classes/menu/translation-services/MainLayoutTemplate.php',
'WPML\\TM\\Menu\\TranslationServices\\NoSiteKeyTemplate' => $baseDir . '/classes/menu/translation-services/NoSiteKeyTemplate.php',
'WPML\\TM\\Menu\\TranslationServices\\Resources' => $baseDir . '/classes/menu/translation-services/Resources.php',
'WPML\\TM\\Menu\\TranslationServices\\ResourcesFactory' => $baseDir . '/classes/menu/translation-services/ResourcesFactory.php',
'WPML\\TM\\Menu\\TranslationServices\\Section' => $baseDir . '/classes/menu/translation-services/Section.php',
'WPML\\TM\\Menu\\TranslationServices\\SectionFactory' => $baseDir . '/classes/menu/translation-services/SectionFactory.php',
'WPML\\TM\\Menu\\TranslationServices\\ServiceMapper' => $baseDir . '/classes/menu/translation-services/ServiceMapper.php',
'WPML\\TM\\Menu\\TranslationServices\\ServicesRetriever' => $baseDir . '/classes/menu/translation-services/ServicesRetriever.php',
'WPML\\TM\\Menu\\TranslationServices\\Troubleshooting\\RefreshServices' => $baseDir . '/classes/menu/translation-services/troubleshooting/RefreshServices.php',
'WPML\\TM\\Menu\\TranslationServices\\Troubleshooting\\RefreshServicesFactory' => $baseDir . '/classes/menu/translation-services/troubleshooting/RefreshServicesFactory.php',
'WPML\\TM\\Notices\\AteLockNotice' => $baseDir . '/classes/notices/AteLockNotice.php',
'WPML\\TM\\REST\\Base' => $baseDir . '/classes/API/REST/Base.php',
'WPML\\TM\\REST\\FactoryLoader' => $baseDir . '/classes/API/REST/FactoryLoader.php',
'WPML\\TM\\Settings\\Repository' => $baseDir . '/classes/settings/Repository.php',
'WPML\\TM\\Templates\\Notices\\AteLocked' => $baseDir . '/templates/notices/AteLocked.php',
'WPML\\TM\\TranslationProxy\\Services\\Authorization' => $baseDir . '/classes/translation-proxy/services/Authorization.php',
'WPML\\TM\\TranslationProxy\\Services\\AuthorizationFactory' => $baseDir . '/classes/translation-proxy/services/AuthorizationFactory.php',
'WPML\\TM\\TranslationProxy\\Services\\Project\\Manager' => $baseDir . '/classes/translation-proxy/services/Project/Manager.php',
'WPML\\TM\\TranslationProxy\\Services\\Project\\Project' => $baseDir . '/classes/translation-proxy/services/Project/Project.php',
'WPML\\TM\\TranslationProxy\\Services\\Project\\SiteDetails' => $baseDir . '/classes/translation-proxy/services/Project/SiteDetails.php',
'WPML\\TM\\TranslationProxy\\Services\\Project\\Storage' => $baseDir . '/classes/translation-proxy/services/Project/Storage.php',
'WPML\\TM\\TranslationProxy\\Services\\Storage' => $baseDir . '/classes/translation-proxy/services/Storage.php',
'WPML\\TM\\Troubleshooting\\SynchronizeSourceIdOfATEJobs\\TriggerSynchronization' => $baseDir . '/classes/troubleshooting/SynchronizeSourceIdOfATEJobs/TriggerSynchronization.php',
'WPML\\TM\\Upgrade\\Commands\\CreateAteDownloadQueueTable' => $baseDir . '/classes/upgrade/commands/CreateAteDownloadQueueTable.php',
'WPML\\TM\\Upgrade\\Commands\\MigrateAteRepository' => $baseDir . '/classes/upgrade/commands/MigrateAteRepository.php',
'WPML\\TM\\Upgrade\\Commands\\RefreshTranslationServices' => $baseDir . '/classes/upgrade/commands/RefreshTranslationServices.php',
'WPML\\TM\\Upgrade\\Commands\\SynchronizeSourceIdOfATEJobs\\Command' => $baseDir . '/classes/upgrade/commands/SynchronizeSourceIdOfATEJobs/Command.php',
'WPML\\TM\\Upgrade\\Commands\\SynchronizeSourceIdOfATEJobs\\CommandFactory' => $baseDir . '/classes/upgrade/commands/SynchronizeSourceIdOfATEJobs/CommandFactory.php',
'WPML\\TM\\Upgrade\\Commands\\SynchronizeSourceIdOfATEJobs\\Repository' => $baseDir . '/classes/upgrade/commands/SynchronizeSourceIdOfATEJobs/Repository.php',
'WPML\\TM\\User\\Hooks' => $baseDir . '/classes/user/Hooks.php',
'WPML\\TranslateLinkTargets\\Hooks' => $baseDir . '/classes/translate_link_targets/Hooks.php',
'WPML_Abstract_Job_Collection' => $baseDir . '/inc/translation-jobs/collections/class-wpml-abstract-job-collection.php',
'WPML_Ajax_Update_Link_Targets_In_Content' => $baseDir . '/classes/translate_link_targets/class-wpml-ajax-update-link-targets-in-content.php',
'WPML_Ajax_Update_Link_Targets_In_Posts' => $baseDir . '/classes/translate_link_targets/class-wpml-ajax-update-link-targets-in-posts.php',
'WPML_Ajax_Update_Link_Targets_In_Strings' => $baseDir . '/classes/translate_link_targets/class-wpml-ajax-update-link-targets-in-strings.php',
'WPML_All_Language_Pairs' => $baseDir . '/classes/language/class-wpml-all-language-pairs.php',
'WPML_All_Translation_Jobs_Migration_Notice' => $baseDir . '/classes/notices/translation-jobs-migration/class-wpml-all-translation-jobs-migration-notice.php',
'WPML_Basket_Tab_Ajax' => $baseDir . '/classes/menu/translation-basket/wpml-basket-tab-ajax.class.php',
'WPML_Cache_Directory' => $vendorDir . '/wpml-shared/wpml-lib-cache/src/cache/class-wpml-cache-directory.php',
'WPML_Core_Version_Check' => $vendorDir . '/wpml-shared/wpml-lib-dependencies/src/dependencies/class-wpml-core-version-check.php',
'WPML_Custom_Field_Editor_Settings' => $baseDir . '/classes/menu/translation-editor/class-wpml-custom-field-editor-settings.php',
'WPML_Dashboard_Ajax' => $baseDir . '/menu/dashboard/wpml-tm-dashboard-ajax.class.php',
'WPML_Dependencies' => $vendorDir . '/wpml-shared/wpml-lib-dependencies/src/dependencies/class-wpml-dependencies.php',
'WPML_Editor_UI_Field' => $baseDir . '/classes/menu/translation-editor/fields/model/class-wpml-editor-ui-field.php',
'WPML_Editor_UI_Field_Group' => $baseDir . '/classes/menu/translation-editor/fields/model/class-wpml-editor-ui-field-group.php',
'WPML_Editor_UI_Field_Image' => $baseDir . '/classes/menu/translation-editor/fields/model/class-wpml-editor-ui-field-image.php',
'WPML_Editor_UI_Field_Section' => $baseDir . '/classes/menu/translation-editor/fields/model/class-wpml-editor-ui-field-section.php',
'WPML_Editor_UI_Fields' => $baseDir . '/classes/menu/translation-editor/fields/model/class-wpml-editor-ui-fields.php',
'WPML_Editor_UI_Job' => $baseDir . '/classes/menu/translation-editor/class-wpml-editor-ui-job.php',
'WPML_Editor_UI_Single_Line_Field' => $baseDir . '/classes/menu/translation-editor/fields/model/class-wpml-editor-ui-single-line-field.php',
'WPML_Editor_UI_TextArea_Field' => $baseDir . '/classes/menu/translation-editor/fields/model/class-wpml-editor-ui-textarea-field.php',
'WPML_Editor_UI_WYSIWYG_Field' => $baseDir . '/classes/menu/translation-editor/fields/model/class-wpml-editor-ui-wysiwyg-field.php',
'WPML_Element_Translation_Job' => $baseDir . '/inc/translation-jobs/jobs/wpml-element-translation-job.class.php',
'WPML_Element_Translation_Package' => $baseDir . '/classes/translation-jobs/class-wpml-element-translation-package.php',
'WPML_External_Translation_Job' => $baseDir . '/inc/translation-jobs/jobs/wpml-external-translation-job.class.php',
'WPML_Language_Pair_Records' => $baseDir . '/classes/language/class-wpml-language-pair-records.php',
'WPML_Links_Fixed_Status' => $baseDir . '/classes/translate_link_targets/class-wpml-links-fixed-status.php',
'WPML_Links_Fixed_Status_Factory' => $baseDir . '/classes/translate_link_targets/class-wpml-links-fixed-status-factory.php',
'WPML_Links_Fixed_Status_For_Posts' => $baseDir . '/classes/translate_link_targets/class-wpml-links-fixed-status-for-posts.php',
'WPML_Links_Fixed_Status_For_Strings' => $baseDir . '/classes/translate_link_targets/class-wpml-links-fixed-status-for-strings.php',
'WPML_Manage_Translations_Role' => $baseDir . '/classes/roles/class-wpml-manage-translations-role.php',
'WPML_PHP_Version_Check' => $vendorDir . '/wpml-shared/wpml-lib-dependencies/src/dependencies/class-wpml-php-version-check.php',
'WPML_Post_Translation_Job' => $baseDir . '/inc/translation-jobs/jobs/wpml-post-translation-job.class.php',
'WPML_Pro_Translation' => $baseDir . '/inc/translation-proxy/wpml-pro-translation.class.php',
'WPML_Remote_String_Translation' => $baseDir . '/classes/wpml-st/class-wpml-remote-string-translation.php',
'WPML_Save_Translation_Data_Action' => $baseDir . '/inc/translation-jobs/helpers/wpml-save-translation-data-action.class.php',
'WPML_String_Translation_Job' => $baseDir . '/inc/translation-jobs/jobs/wpml-string-translation-job.class.php',
'WPML_TF_TP_Ratings_Synchronize' => $baseDir . '/classes/translation-feedback/cron/actions/wpml-tf-tp-ratings-synchronize.php',
'WPML_TF_TP_Ratings_Synchronize_Factory' => $baseDir . '/classes/translation-feedback/factories/wpml-tf-tp-ratings-synchronize-factory.php',
'WPML_TF_Translation_Queue_Hooks' => $baseDir . '/classes/translation-feedback/hooks/wpml-tf-translation-queue-hooks.php',
'WPML_TF_Translation_Queue_Hooks_Factory' => $baseDir . '/classes/translation-feedback/factories/action-loaders/wpml-tf-translation-queue-hooks-factory.php',
'WPML_TF_Translation_Service_Change_Hooks' => $baseDir . '/classes/translation-feedback/hooks/wpml-tf-translation-service-change-hooks.php',
'WPML_TF_Translation_Service_Change_Hooks_Factory' => $baseDir . '/classes/translation-feedback/factories/action-loaders/wpml-tf-translation-service-change-hooks-factory.php',
'WPML_TF_WP_Cron_Events' => $baseDir . '/classes/translation-feedback/cron/wpml-tf-wp-cron-events.php',
'WPML_TF_WP_Cron_Events_Factory' => $baseDir . '/classes/translation-feedback/factories/action-loaders/wpml-tf-wp-cron-event-factory.php',
'WPML_TF_XML_RPC_Feedback_Update' => $baseDir . '/classes/translation-feedback/xml-rpc/wpml-tf-xml-rpc-feedback-update.php',
'WPML_TF_XML_RPC_Feedback_Update_Factory' => $baseDir . '/classes/translation-feedback/factories/wpml-tf-xml-rpc-feedback-update-factory.php',
'WPML_TF_XML_RPC_Hooks' => $baseDir . '/classes/translation-feedback/hooks/wpml-tf-xml-rpc-hooks.php',
'WPML_TF_XML_RPC_Hooks_Factory' => $baseDir . '/classes/translation-feedback/factories/action-loaders/wpml-tf-xml-rpc-hooks-factory.php',
'WPML_TM_AJAX' => $baseDir . '/classes/AJAX/class-wpml-tm-ajax.php',
'WPML_TM_AJAX_Factory_Obsolete' => $baseDir . '/classes/class-wpml-tm-ajax-factory.php',
'WPML_TM_AMS_API' => $baseDir . '/classes/ATE/API/class-wpml-tm-ams-api.php',
'WPML_TM_AMS_ATE_Console_Section' => $baseDir . '/classes/menu/ams-ate-console/class-wpml-tm-ams-ate-console-section.php',
'WPML_TM_AMS_ATE_Console_Section_Factory' => $baseDir . '/classes/menu/ams-ate-console/class-wpml-tm-ams-ate-console-section-factory.php',
'WPML_TM_AMS_ATE_Factories' => $baseDir . '/classes/ATE/class-wpml-tm-ams-ate-factories.php',
'WPML_TM_AMS_Check_Website_ID' => $baseDir . '/classes/ATE/Hooks/class-wpml-tm-ams-check-website-id.php',
'WPML_TM_AMS_Check_Website_ID_Factory' => $baseDir . '/classes/ATE/Hooks/class-wpml-tm-ams-check-website-id-factory.php',
'WPML_TM_AMS_Synchronize_Actions' => $baseDir . '/classes/ATE/Hooks/class-wpml-tm-ams-synchronize-actions.php',
'WPML_TM_AMS_Synchronize_Actions_Factory' => $baseDir . '/classes/ATE/Hooks/class-wpml-tm-ams-synchronize-actions-factory.php',
'WPML_TM_AMS_Synchronize_Users_On_Access_Denied' => $baseDir . '/classes/ATE/Hooks/class-wpml-tm-ams-synchronize-users-on-access-denied.php',
'WPML_TM_AMS_Synchronize_Users_On_Access_Denied_Factory' => $baseDir . '/classes/ATE/Hooks/class-wpml-tm-ams-synchronize-users-on-access-denied-factory.php',
'WPML_TM_AMS_Translator_Activation_Records' => $baseDir . '/classes/ATE/class-wpml-tm-ams-translator-activation-records.php',
'WPML_TM_AMS_User_Sync' => $baseDir . '/classes/ATE/class-wpml-tm-ams-user-sync.php',
'WPML_TM_AMS_Users' => $baseDir . '/classes/ATE/class-wpml-tm-ams-users.php',
'WPML_TM_API' => $baseDir . '/classes/class-wpml-tm-api.php',
'WPML_TM_API_Hook_Links' => $baseDir . '/classes/API/Hooks/class-wpml-tm-api-hook-links.php',
'WPML_TM_API_Hooks_Factory' => $baseDir . '/classes/API/Hooks/class-wpml-tm-api-hooks-factory.php',
'WPML_TM_ATE' => $baseDir . '/classes/ATE/class-wpml-tm-ate.php',
'WPML_TM_ATE_AMS_Endpoints' => $baseDir . '/classes/ATE/class-wpml-tm-ate-ams-endpoints.php',
'WPML_TM_ATE_API' => $baseDir . '/classes/ATE/API/class-wpml-tm-ate-api.php',
'WPML_TM_ATE_API_Error' => $baseDir . '/classes/ATE/Hooks/class-wpml-tm-ate-api-error.php',
'WPML_TM_ATE_Authentication' => $baseDir . '/classes/ATE/API/class-wpml-tm-ate-authentication.php',
'WPML_TM_ATE_Job' => $baseDir . '/classes/ATE/class-wpml-tm-ate-job.php',
'WPML_TM_ATE_Job_Data_Fallback' => $baseDir . '/classes/ATE/Hooks/class-wpml-tm-ate-job-data-fallback-action.php',
'WPML_TM_ATE_Job_Data_Fallback_Factory' => $baseDir . '/classes/ATE/Hooks/class-wpml-tm-ate-job-data-fallback-action-factory.php',
'WPML_TM_ATE_Job_Repository' => $baseDir . '/classes/ATE/models/class-wpml-tm-ate-job-repository.php',
'WPML_TM_ATE_Jobs' => $baseDir . '/classes/ATE/class-wpml-tm-ate-jobs.php',
'WPML_TM_ATE_Jobs_Actions' => $baseDir . '/classes/ATE/Hooks/class-wpml-tm-ate-jobs-actions.php',
'WPML_TM_ATE_Jobs_Actions_Factory' => $baseDir . '/classes/ATE/Hooks/class-wpml-tm-ate-jobs-actions-factory.php',
'WPML_TM_ATE_Jobs_Store_Actions' => $baseDir . '/classes/ATE/Hooks/class-wpml-tm-ate-jobs-store-actions.php',
'WPML_TM_ATE_Jobs_Store_Actions_Factory' => $baseDir . '/classes/ATE/Hooks/class-wpml-tm-ate-jobs-store-actions-factory.php',
'WPML_TM_ATE_Jobs_Sync_Script_Loader' => $baseDir . '/classes/ATE/Hooks/class-wpml-tm-ate-jobs-sync-script-loader.php',
'WPML_TM_ATE_Models_Job_Create' => $baseDir . '/classes/ATE/models/class-wpml-tm-ate-models-job-create.php',
'WPML_TM_ATE_Models_Job_File' => $baseDir . '/classes/ATE/models/class-wpml-tm-ate-models-job-file.php',
'WPML_TM_ATE_Models_Language' => $baseDir . '/classes/ATE/models/class-wpml-tm-ate-models-language.php',
'WPML_TM_ATE_Post_Edit_Actions' => $baseDir . '/classes/ATE/Hooks/class-wpml-tm-ate-post-edit-actions.php',
'WPML_TM_ATE_Post_Edit_Actions_Factory' => $baseDir . '/classes/ATE/Hooks/class-wpml-tm-ate-post-edit-actions-factory.php',
'WPML_TM_ATE_Request_Activation_Email' => $baseDir . '/classes/emails/ATE/class-wpml-tm-ate-request-activation-email.php',
'WPML_TM_ATE_Required_Actions_Base' => $baseDir . '/classes/ATE/Hooks/class-wpml-tm-ate-required-actions-base.php',
'WPML_TM_ATE_Required_Rest_Base' => $baseDir . '/classes/ATE/REST/class-wpml-tm-ate-required-rest-base.php',
'WPML_TM_ATE_Status' => $baseDir . '/classes/ATE/class-wpml-tm-ate-status.php',
'WPML_TM_ATE_Translator_Login' => $baseDir . '/classes/ATE/Hooks/class-wpml-tm-ate-translator-login.php',
'WPML_TM_ATE_Translator_Login_Factory' => $baseDir . '/classes/ATE/Hooks/class-wpml-tm-ate-translator-login-factory.php',
'WPML_TM_ATE_Translator_Message_Classic_Editor' => $baseDir . '/classes/ATE/Hooks/class-wpml-tm-ate-translator-message-classic-editor.php',
'WPML_TM_ATE_Translator_Message_Classic_Editor_Factory' => $baseDir . '/classes/ATE/Hooks/class-wpml-tm-ate-translator-message-classic-editor-factory.php',
'WPML_TM_Action_Helper' => $baseDir . '/inc/actions/wpml-tm-action-helper.class.php',
'WPML_TM_Add_TP_ID_Column_To_Translation_Status' => $baseDir . '/classes/upgrade/commands/class-wpml-tm-add-tpid-column-to-translation-status.php',
'WPML_TM_Add_TP_Revision_And_TS_Status_Columns_To_Core_Status' => $baseDir . '/classes/upgrade/commands/class-wpml-tm-add-tp-revision-and-ts-status-columns-to-core-status.php',
'WPML_TM_Add_TP_Revision_And_TS_Status_Columns_To_Translation_Status' => $baseDir . '/classes/upgrade/commands/class-wpml-tm-add-tp-revision-and-ts-status-columns-to-translation-status.php',
'WPML_TM_Admin_Menus_Factory' => $baseDir . '/classes/menu/wpml-tm-admin-menus-factory.php',
'WPML_TM_Admin_Menus_Hooks' => $baseDir . '/classes/menu/wpml-tm-admin-menus-hooks.php',
'WPML_TM_Admin_Sections' => $baseDir . '/classes/menu/class-wpml-tm-admin-sections.php',
'WPML_TM_Ajax_Factory' => $baseDir . '/classes/class-wpml-tm-ajax-factory-2.php',
'WPML_TM_All_Admins_To_Translation_Managers' => $baseDir . '/classes/user/class-wpml-all-admins-to-translation-managers.php',
'WPML_TM_Array_Search' => $baseDir . '/classes/utils/class-wpml-array-search.php',
'WPML_TM_Batch_Report' => $baseDir . '/classes/emails/report/class-wpml-tm-batch-report.php',
'WPML_TM_Batch_Report_Email_Builder' => $baseDir . '/classes/emails/report/class-wpml-tm-batch-report-email-builder.php',
'WPML_TM_Batch_Report_Email_Process' => $baseDir . '/classes/emails/report/class-wpml-tm-batch-report-email-process.php',
'WPML_TM_Batch_Report_Hooks' => $baseDir . '/classes/emails/report/class-wpml-tm-batch-report-hooks.php',
'WPML_TM_Blog_Translators' => $baseDir . '/inc/local-translation/wpml-tm-blog-translators.class.php',
'WPML_TM_CMS_ID' => $baseDir . '/classes/translation-proxy/class-wpml-tm-cms-id.php',
'WPML_TM_Count' => $baseDir . '/classes/words-count/count/wpml-tm-count.php',
'WPML_TM_Count_Composite' => $baseDir . '/classes/words-count/count/wpml-tm-count-composite.php',
'WPML_TM_Custom_XML_AJAX' => $baseDir . '/classes/menu/custom-xml-config/class-wpml-tm-custom-xml-ajax.php',
'WPML_TM_Custom_XML_Factory' => $baseDir . '/classes/menu/custom-xml-config/class-wpml-tm-custom-xml-factory.php',
'WPML_TM_Custom_XML_UI' => $baseDir . '/classes/menu/custom-xml-config/class-wpml-tm-custom-xml-ui.php',
'WPML_TM_Custom_XML_UI_Hooks' => $baseDir . '/classes/menu/custom-xml-config/class-wpml-tm-custom-xml-ui-hooks.php',
'WPML_TM_Custom_XML_UI_Resources' => $baseDir . '/classes/menu/custom-xml-config/class-wpml-tm-custom-xml-ui-resources.php',
'WPML_TM_Dashboard' => $baseDir . '/menu/dashboard/wpml-tm-dashboard.class.php',
'WPML_TM_Dashboard_Display_Filter' => $baseDir . '/classes/menu/dashboard/class-wpml-tm-dashboard-display-filter.php',
'WPML_TM_Dashboard_Document_Row' => $baseDir . '/classes/menu/dashboard/class-wpml-tm-dashboard-document-row.php',
'WPML_TM_Dashboard_Pagination' => $baseDir . '/classes/menu/dashboard/class-wpml-tm-dashboard-pagination.php',
'WPML_TM_Default_Settings' => $baseDir . '/classes/settings/wpml-tm-default-settings.php',
'WPML_TM_Default_Settings_Factory' => $baseDir . '/classes/settings/wpml-tm-default-settings-factory.php',
'WPML_TM_Disable_Notices_In_Wizard' => $baseDir . '/classes/notices/class-wpml-tm-disable-notices-in-wizard.php',
'WPML_TM_Disable_Notices_In_Wizard_Factory' => $baseDir . '/classes/notices/class-wpml-tm-disable-notices-in-wizard-factory.php',
'WPML_TM_Editor_Job_Save' => $baseDir . '/classes/menu/translation-editor/class-wpml-tm-editor-job-save.php',
'WPML_TM_Editor_Save_Ajax_Action' => $baseDir . '/classes/menu/translation-editor/class-wpml-tm-editor-save-ajax-action.php',
'WPML_TM_Editors' => $baseDir . '/classes/editor/class-wpml-tm-editors.php',
'WPML_TM_Element_Translations' => $baseDir . '/inc/core/wpml-tm-element-translations.class.php',
'WPML_TM_Email_Jobs_Summary_View' => $baseDir . '/classes/emails/report/class-wpml-tm-email-jobs-summary-view.php',
'WPML_TM_Email_Notification_View' => $baseDir . '/classes/emails/notification/wpml-tm-email-notification-view.php',
'WPML_TM_Email_Twig_Template_Factory' => $baseDir . '/classes/emails/wpml-tm-email-twig-template-factory.php',
'WPML_TM_Email_View' => $baseDir . '/classes/emails/wpml-tm-email-view.php',
'WPML_TM_Emails_Settings' => $baseDir . '/classes/menu/translation-notifications/class-wpml-tm-emails-settings.php',
'WPML_TM_Emails_Settings_Factory' => $baseDir . '/classes/menu/translation-notifications/class-wpml-tm-emails-settings-factory.php',
'WPML_TM_Field_Content_Action' => $baseDir . '/classes/translation-jobs/class-wpml-tm-field-content-action.php',
'WPML_TM_Field_Type_Encoding' => $baseDir . '/classes/translation-jobs/class-wpml-tm-field-type-encoding.php',
'WPML_TM_Field_Type_Sanitizer' => $baseDir . '/classes/menu/translation-editor/class-wpml-tm-field-type-sanitizer.php',
'WPML_TM_General_Xliff_Import' => $baseDir . '/classes/xliff/class-wpml-tm-general-xliff-import.php',
'WPML_TM_General_Xliff_Reader' => $baseDir . '/classes/xliff/class-wpml-tm-general-xliff-reader.php',
'WPML_TM_ICL20MigrationException' => $baseDir . '/classes/ICL-20-migration/class-wpml-tm-icl20-migration-exception.php',
'WPML_TM_ICL20_Acknowledge' => $baseDir . '/classes/ICL-20-migration/remote/class-wpml-tm-icl20-acknowledge.php',
'WPML_TM_ICL20_Migrate' => $baseDir . '/classes/ICL-20-migration/class-wpml-tm-icl20-migrate.php',
'WPML_TM_ICL20_Migrate_Local' => $baseDir . '/classes/ICL-20-migration/class-wpml-tm-icl20-migrate-local.php',
'WPML_TM_ICL20_Migrate_Remote' => $baseDir . '/classes/ICL-20-migration/class-wpml-tm-icl20-migrate-remote.php',
'WPML_TM_ICL20_Migration_AJAX' => $baseDir . '/classes/ICL-20-migration/class-wpml-tm-icl20-migration-ajax.php',
'WPML_TM_ICL20_Migration_Container' => $baseDir . '/classes/ICL-20-migration/remote/class-wpml-tm-icl20-migration-container.php',
'WPML_TM_ICL20_Migration_Factory' => $baseDir . '/classes/ICL-20-migration/class-wpml-tm-icl20-migration-factory.php',
'WPML_TM_ICL20_Migration_Loader' => $baseDir . '/classes/ICL-20-migration/class-wpml-tm-icl20-migration-loader.php',
'WPML_TM_ICL20_Migration_Locks' => $baseDir . '/classes/ICL-20-migration/ui/class-wpml-tm-icl20-migration-locks.php',
'WPML_TM_ICL20_Migration_Notices' => $baseDir . '/classes/ICL-20-migration/ui/class-wpml-tm-icl20-migration-notices.php',
'WPML_TM_ICL20_Migration_Progress' => $baseDir . '/classes/ICL-20-migration/class-wpml-tm-icl20-migration-progress.php',
'WPML_TM_ICL20_Migration_Status' => $baseDir . '/classes/ICL-20-migration/class-wpml-tm-icl20-migration-status.php',
'WPML_TM_ICL20_Migration_Support' => $baseDir . '/classes/ICL-20-migration/ui/class-wpml-tm-icl20-migration-support.php',
'WPML_TM_ICL20_Project' => $baseDir . '/classes/ICL-20-migration/remote/class-wpml-tm-icl20-project-migration.php',
'WPML_TM_ICL20_Token' => $baseDir . '/classes/ICL-20-migration/remote/class-wpml-tm-icl20-token.php',
'WPML_TM_ICL_Translate_Job' => $baseDir . '/classes/records/class-wpml-tm-icl-translate-job.php',
'WPML_TM_ICL_Translation_Status' => $baseDir . '/classes/records/class-wpml-tm-icl-translation-status.php',
'WPML_TM_ICL_Translations' => $baseDir . '/classes/records/class-wpml-tm-icl-translations.php',
'WPML_TM_Job_Action' => $baseDir . '/classes/translation-jobs/class-wpml-tm-job-action.php',
'WPML_TM_Job_Action_Factory' => $baseDir . '/classes/translation-jobs/class-wpml-tm-job-action-factory.php',
'WPML_TM_Job_Created' => $baseDir . '/classes/ATE/models/class-wpml-tm-job-created.php',
'WPML_TM_Job_Element_Entity' => $baseDir . '/classes/jobs/class-wpml-tm-job-element-entity.php',
'WPML_TM_Job_Elements_Repository' => $baseDir . '/classes/jobs/class-wpml-tm-job-elements-repository.php',
'WPML_TM_Job_Entity' => $baseDir . '/classes/jobs/class-wpml-tm-job-entity.php',
'WPML_TM_Job_Factory_User' => $baseDir . '/classes/abstract/class-wpml-tm-job-factory-user.php',
'WPML_TM_Job_Layout' => $baseDir . '/classes/translation-jobs/class-wpml-tm-job-layout.php',
'WPML_TM_Job_TS_Status' => $baseDir . '/classes/jobs/class-wpml-tm-job-ts-status.php',
'WPML_TM_Jobs_Batch' => $baseDir . '/classes/jobs/class-wpml-tm-jobs-batch.php',
'WPML_TM_Jobs_Collection' => $baseDir . '/classes/jobs/class-wpml-tm-jobs-collection.php',
'WPML_TM_Jobs_Daily_Summary_Report_Model' => $baseDir . '/classes/emails/notification/summary/class-wpml-tm-jobs-daily-summary-report-model.php',
'WPML_TM_Jobs_Date_Range' => $baseDir . '/classes/jobs/class-wpml-tm-jobs-date-range.php',
'WPML_TM_Jobs_Deadline_Cron_Hooks' => $baseDir . '/classes/jobs-deadline/wpml-tm-jobs-deadline-cron-hooks.php',
'WPML_TM_Jobs_Deadline_Cron_Hooks_Factory' => $baseDir . '/classes/jobs-deadline/wpml-tm-jobs-deadline-cron-hooks-factory.php',
'WPML_TM_Jobs_Deadline_Estimate' => $baseDir . '/classes/jobs-deadline/wpml-tm-jobs-deadline-estimate.php',
'WPML_TM_Jobs_Deadline_Estimate_AJAX_Action' => $baseDir . '/classes/jobs-deadline/wpml-tm-jobs-deadline-estimate-ajax-action.php',
'WPML_TM_Jobs_Deadline_Estimate_AJAX_Action_Factory' => $baseDir . '/classes/jobs-deadline/wpml-tm-jobs-deadline-estimate-ajax-action-factory.php',
'WPML_TM_Jobs_Deadline_Estimate_Factory' => $baseDir . '/classes/jobs-deadline/wpml-tm-jobs-deadline-estimate-factory.php',
'WPML_TM_Jobs_List_Script_Data' => $baseDir . '/classes/menu/jobs-list/class-wpml-tm-jobs-list-script-data.php',
'WPML_TM_Jobs_List_Services' => $baseDir . '/classes/menu/jobs-list/class-wpml-tm-jobs-list-services.php',
'WPML_TM_Jobs_List_Status_Names' => $baseDir . '/classes/menu/jobs-list/class-wpml-tm-jobs-list-status-names.php',
'WPML_TM_Jobs_List_Translated_By_Filters' => $baseDir . '/classes/menu/jobs-list/class-wpml-tm-jobs-list-translated_by_filters.php',
'WPML_TM_Jobs_List_Translators' => $baseDir . '/classes/menu/jobs-list/class-wpml-tm-jobs-list-translators.php',
'WPML_TM_Jobs_Migration_State' => $baseDir . '/classes/notices/translation-jobs-migration/class-wpml-tm-jobs-migration-state.php',
'WPML_TM_Jobs_Needs_Update_Param' => $baseDir . '/classes/jobs/class-wpml-tm-jobs-needs-update-param.php',
'WPML_TM_Jobs_Repository' => $baseDir . '/classes/jobs/class-wpml-tm-jobs-repository.php',
'WPML_TM_Jobs_Search_Params' => $baseDir . '/classes/jobs/class-wpml-tm-jobs-search-params.php',
'WPML_TM_Jobs_Sorting_Param' => $baseDir . '/classes/jobs/class-wpml-tm-jobs-sorting-param.php',
'WPML_TM_Jobs_Summary' => $baseDir . '/classes/emails/notification/summary/class-wpml-tm-jobs-summary.php',
'WPML_TM_Jobs_Summary_Report' => $baseDir . '/classes/emails/notification/summary/class-wpml-tm-jobs-summary-report.php',
'WPML_TM_Jobs_Summary_Report_Hooks' => $baseDir . '/classes/emails/notification/summary/wpml-tm-jobs-summary-report-hooks.php',
'WPML_TM_Jobs_Summary_Report_Hooks_Factory' => $baseDir . '/classes/emails/notification/summary/wpml-tm-jobs-summary-report-hooks-factory.php',
'WPML_TM_Jobs_Summary_Report_Model' => $baseDir . '/classes/emails/notification/summary/interface-wpml-tm-jobs-summary-report-model.php',
'WPML_TM_Jobs_Summary_Report_Process' => $baseDir . '/classes/emails/notification/summary/class-wpml-tm-jobs-summary-report-process.php',
'WPML_TM_Jobs_Summary_Report_Process_Factory' => $baseDir . '/classes/emails/notification/summary/class-wpml-tm-jobs-summary-report-process-factory.php',
'WPML_TM_Jobs_Summary_Report_View' => $baseDir . '/classes/emails/notification/summary/class-wpml-tm-jobs-summary-report-view.php',
'WPML_TM_Jobs_Weekly_Summary_Report_Model' => $baseDir . '/classes/emails/notification/summary/class-wpml-tm-jobs-weekly-summary-report-model.php',
'WPML_TM_Last_Picked_Up' => $baseDir . '/classes/menu/tp-polling/wpml-tm-last-picked-up.php',
'WPML_TM_Loader' => $baseDir . '/classes/class-wpml-tm-loader.php',
'WPML_TM_Log' => $baseDir . '/classes/translation-proxy/api/class-wpml-tm-log.php',
'WPML_TM_MCS_ATE' => $baseDir . '/classes/menu/mcsetup/class-wpml-tm-mcs-ate.php',
'WPML_TM_MCS_ATE_Strings' => $baseDir . '/classes/menu/mcsetup/class-wpml-tm-mcs-ate-strings.php',
'WPML_TM_MCS_Custom_Field_Settings_Menu' => $baseDir . '/classes/menu/mcsetup/class-wpml-tm-mcs-custom-field-settings-menu.php',
'WPML_TM_MCS_Custom_Field_Settings_Menu_Factory' => $baseDir . '/classes/menu/mcsetup/class-wpml-tm-mcs-custom-field-settings-menu-factory.php',
'WPML_TM_MCS_Pagination_Ajax' => $baseDir . '/classes/menu/mcsetup/class-wpml-tm-mcs-pagination-ajax.php',
'WPML_TM_MCS_Pagination_Ajax_Factory' => $baseDir . '/classes/menu/mcsetup/class-wpml-tm-mcs-pagination-ajax-factory.php',
'WPML_TM_MCS_Pagination_Render' => $baseDir . '/classes/menu/mcsetup/class-wpml-tm-mcs-pagination-render.php',
'WPML_TM_MCS_Pagination_Render_Factory' => $baseDir . '/classes/menu/mcsetup/class-wpml-tm-mcs-pagination-render-factory.php',
'WPML_TM_MCS_Post_Custom_Field_Settings_Menu' => $baseDir . '/classes/menu/mcsetup/class-wpml-tm-mcs-post-custom-field-settings-menu.php',
'WPML_TM_MCS_Search_Factory' => $baseDir . '/classes/menu/mcsetup/class-wpml-tm-mcs-search-factory.php',
'WPML_TM_MCS_Search_Render' => $baseDir . '/classes/menu/mcsetup/class-wpml-tm-mcs-search-render.php',
'WPML_TM_MCS_Section_UI' => $baseDir . '/classes/menu/mcsetup/class-wpml-tm-mcs-section-ui.php',
'WPML_TM_MCS_Term_Custom_Field_Settings_Menu' => $baseDir . '/classes/menu/mcsetup/class-wpml-tm-mcs-term-custom-field-settings-menu.php',
'WPML_TM_Mail_Notification' => $baseDir . '/classes/emails/wpml-tm-mail-notification.php',
'WPML_TM_Menus' => $baseDir . '/menu/wpml-tm-menus.class.php',
'WPML_TM_Menus_Management' => $baseDir . '/menu/wpml-tm-menus-management.php',
'WPML_TM_Menus_Settings' => $baseDir . '/menu/wpml-tm-menus-settings.php',
'WPML_TM_Old_Editor' => $baseDir . '/classes/ATE/Hooks/class-wpml-tm-old-editor.php',
'WPML_TM_Old_Editor_Factory' => $baseDir . '/classes/ATE/Hooks/class-wpml-tm-old-editor-factory.php',
'WPML_TM_Old_Jobs_Editor' => $baseDir . '/classes/editor/class-wpml-tm-old-jobs-editor.php',
'WPML_TM_Only_I_Language_Pairs_Factory' => $baseDir . '/classes/user/class-wpml-only-i-language-pairs-factory.php',
'WPML_TM_Only_I_language_Pairs' => $baseDir . '/classes/user/class-wpml-only-i-language-pairs.php',
'WPML_TM_Options_Ajax' => $baseDir . '/classes/menu/mcsetup/class-wpml-tm-options-ajax.php',
'WPML_TM_Overdue_Jobs_Report' => $baseDir . '/classes/emails/overdue-report/wpml-tm-overdue-jobs-report.php',
'WPML_TM_Overdue_Jobs_Report_Factory' => $baseDir . '/classes/emails/overdue-report/wpml-tm-overdue-jobs-report-factory.php',
'WPML_TM_Package_Element' => $baseDir . '/classes/words-count/wpml-tm-package-element.php',
'WPML_TM_Page' => $baseDir . '/classes/class-wpml-tm-page.php',
'WPML_TM_Parent_Filter_Ajax' => $baseDir . '/classes/translation-dashboard/class-wpml-tm-parent-filter-ajax.php',
'WPML_TM_Parent_Filter_Ajax_Factory' => $baseDir . '/classes/translation-dashboard/class-wpml-tm-parent-filter-ajax-factory.php',
'WPML_TM_Pickup_Mode_Ajax' => $baseDir . '/classes/menu/mcsetup/class-wpml-tm-pickup-mode-ajax.php',
'WPML_TM_Polling_Box' => $baseDir . '/classes/menu/tp-polling/class-wpml-tm-polling-box.php',
'WPML_TM_Post' => $baseDir . '/classes/words-count/class-wpml-tm-post.php',
'WPML_TM_Post_Actions' => $baseDir . '/inc/actions/wpml-tm-post-actions.class.php',
'WPML_TM_Post_Data' => $baseDir . '/classes/helpers/class-wpml-tm-post-data.php',
'WPML_TM_Post_Edit_Link_Anchor' => $baseDir . '/classes/menu-elements/class-wpml-tm-post-edit-link-anchor.php',
'WPML_TM_Post_Edit_Notices' => $baseDir . '/classes/notices/wpml-tm-post-edit-notices.php',
'WPML_TM_Post_Edit_Notices_Factory' => $baseDir . '/classes/notices/wpml-tm-post-edit-notices-factory.php',
'WPML_TM_Post_Edit_TM_Editor_Mode' => $baseDir . '/classes/post-edit-screen/class-wpml-tm-post-edit-tm-editor-mode.php',
'WPML_TM_Post_Edit_TM_Editor_Select' => $baseDir . '/classes/post-edit-screen/class-wpml-tm-post-edit-tm-editor-select.php',
'WPML_TM_Post_Edit_TM_Editor_Select_Factory' => $baseDir . '/classes/post-edit-screen/class-wpml-tm-post-edit-tm-editor-select-factory.php',
'WPML_TM_Post_Job_Entity' => $baseDir . '/classes/jobs/class-wpml-tm-post-job-entity.php',
'WPML_TM_Post_Link' => $baseDir . '/classes/menu-elements/class-wpml-tm-post-link.php',
'WPML_TM_Post_Link_Anchor' => $baseDir . '/classes/menu-elements/class-wpml-tm-post-link-anchor.php',
'WPML_TM_Post_Link_Factory' => $baseDir . '/classes/menu-elements/class-wpml-tm-post-link-factory.php',
'WPML_TM_Post_Target_Lang_Filter' => $baseDir . '/classes/filters/class-wpml-tm-post-target-lang-filter.php',
'WPML_TM_Post_View_Link_Anchor' => $baseDir . '/classes/menu-elements/class-wpml-tm-post-view-link-anchor.php',
'WPML_TM_Post_View_Link_Title' => $baseDir . '/classes/menu-elements/class-wpml-tm-post-view-link-title.php',
'WPML_TM_Privacy_Content' => $baseDir . '/classes/privacy/class-wpml-tm-privacy-content.php',
'WPML_TM_Privacy_Content_Factory' => $baseDir . '/classes/privacy/class-wpml-tm-privacy-content-factory.php',
'WPML_TM_Promotions' => $baseDir . '/classes/class-wpml-tm-promotions.php',
'WPML_TM_REST_AMS_Clients' => $baseDir . '/classes/ATE/REST/class-wpml-tm-rest-ams-clients.php',
'WPML_TM_REST_AMS_Clients_Factory' => $baseDir . '/classes/ATE/REST/class-wpml-tm-rest-ams-clients-factory.php',
'WPML_TM_REST_ATE_API' => $baseDir . '/classes/ATE/REST/class-wpml-tm-rest-ate-api.php',
'WPML_TM_REST_ATE_API_Factory' => $baseDir . '/classes/ATE/REST/class-wpml-tm-rest-ate-api-factory.php',
'WPML_TM_REST_ATE_Jobs' => $baseDir . '/classes/ATE/REST/class-wpml-tm-rest-ate-jobs.php',
'WPML_TM_REST_ATE_Jobs_Factory' => $baseDir . '/classes/ATE/REST/class-wpml-tm-rest-ate-jobs-factory.php',
'WPML_TM_REST_ATE_Public' => $baseDir . '/classes/ATE/REST/class-wpml-tm-rest-ate-public.php',
'WPML_TM_REST_ATE_Public_Factory' => $baseDir . '/classes/ATE/REST/class-wpml-tm-rest-ate-public-factory.php',
'WPML_TM_REST_ATE_Sync_Jobs' => $baseDir . '/classes/ATE/REST/class-wpml-tm-rest-ate-sync-jobs.php',
'WPML_TM_REST_ATE_Sync_Jobs_Factory' => $baseDir . '/classes/ATE/REST/class-wpml-tm-rest-ate-sync-jobs-factory.php',
'WPML_TM_REST_Apply_TP_Translation' => $baseDir . '/classes/API/REST/class-wpml-tm-rest-apply-tp-translation.php',
'WPML_TM_REST_Apply_TP_Translation_Factory' => $baseDir . '/classes/API/REST/class-wpml-tm-rest-apply-tp-translation-factory.php',
'WPML_TM_REST_Batch_Sync' => $baseDir . '/classes/API/REST/class-wpml-tm-rest-batch-sync.php',
'WPML_TM_REST_Batch_Sync_Factory' => $baseDir . '/classes/API/REST/class-wpml-tm-rest-batch-sync-factory.php',
'WPML_TM_REST_Jobs' => $baseDir . '/classes/API/REST/class-wpml-tm-rest-jobs.php',
'WPML_TM_REST_Jobs_Factory' => $baseDir . '/classes/API/REST/class-wpml-tm-rest-jobs-factory.php',
'WPML_TM_REST_Settings_Translation_Editor' => $baseDir . '/classes/API/REST/class-wpml-tm-rest-settings-translation-editor.php',
'WPML_TM_REST_Settings_Translation_Editor_Factory' => $baseDir . '/classes/API/REST/class-wpml-tm-rest-settings-translation-editor-factory.php',
'WPML_TM_REST_TP_XLIFF' => $baseDir . '/classes/API/REST/class-wpml-tm-rest-tp-xliff.php',
'WPML_TM_REST_TP_XLIFF_Factory' => $baseDir . '/classes/API/REST/class-wpml-tm-rest-tp-xliff-factory.php',
'WPML_TM_REST_XLIFF' => $baseDir . '/classes/ATE/REST/class-wpml-tm-rest-xliff.php',
'WPML_TM_REST_XLIFF_Factory' => $baseDir . '/classes/ATE/REST/class-wpml-tm-rest-xliff-factory.php',
'WPML_TM_Record_User' => $baseDir . '/classes/abstract/class-wpml-tm-record-user.php',
'WPML_TM_Records' => $baseDir . '/classes/records/class-wpml-tm-records.php',
'WPML_TM_Requirements' => $baseDir . '/classes/class-wpml-tm-requirements.php',
'WPML_TM_Reset_Options_Filter' => $baseDir . '/classes/reset/class-wpml-tm-reset-options-filter.php',
'WPML_TM_Reset_Options_Filter_Factory' => $baseDir . '/classes/reset/class-wpml-tm-reset-options-filter-factory.php',
'WPML_TM_Resources_Factory' => $baseDir . '/classes/class-wpml-tm-resources-factory.php',
'WPML_TM_Rest_Download_File' => $baseDir . '/classes/API/REST/class-wpml-tm-rest-download-file.php',
'WPML_TM_Rest_Job_Progress' => $baseDir . '/classes/API/REST/jobs/class-wpml-tm-rest-job-progress.php',
'WPML_TM_Rest_Job_Translator_Name' => $baseDir . '/classes/API/REST/jobs/class-wpml-tm-rest-job-translator-name.php',
'WPML_TM_Rest_Jobs_Columns' => $baseDir . '/classes/API/REST/jobs/class-wpml-tm-rest-jobs-columns.php',
'WPML_TM_Rest_Jobs_Criteria_Parser' => $baseDir . '/classes/API/REST/jobs/class-wpml-tm-rest-jobs-criteria-parser.php',
'WPML_TM_Rest_Jobs_Element_Info' => $baseDir . '/classes/API/REST/jobs/class-wpml-tm-rest-jobs-element-info.php',
'WPML_TM_Rest_Jobs_Language_Names' => $baseDir . '/classes/API/REST/jobs/class-wpml-tm-rest-jobs-language-names.php',
'WPML_TM_Rest_Jobs_Package_Helper_Factory' => $baseDir . '/classes/API/REST/jobs/class-wpml-tm-rest-jobs-package-helper-factory.php',
'WPML_TM_Rest_Jobs_Translation_Service' => $baseDir . '/classes/API/REST/jobs/class-wpml-tm-rest-jobs-translation-service.php',
'WPML_TM_Rest_Jobs_View_Model' => $baseDir . '/classes/API/REST/jobs/class-wpml-tm-rest-jobs-view-model.php',
'WPML_TM_Restore_Skipped_Migration' => $baseDir . '/classes/notices/translation-jobs-migration/class-wpml-tm-restore-skipped-migration-hook.php',
'WPML_TM_Scripts_Factory' => $baseDir . '/classes/menu/class-wpml-tm-scripts-factory.php',
'WPML_TM_Serialized_Custom_Field_Package_Handler' => $baseDir . '/classes/settings/class-wpml-tm-serialized-custom-field-package-handler.php',
'WPML_TM_Serialized_Custom_Field_Package_Handler_Factory' => $baseDir . '/classes/settings/class-wpml-tm-serialized-custom-field-package-handler-factory.php',
'WPML_TM_Service_Activation_AJAX' => $baseDir . '/classes/class-wpml-tm-service-activation-ajax.php',
'WPML_TM_Setup_Wizard' => $baseDir . '/classes/wizard/class-wpml-tm-setup-wizard.php',
'WPML_TM_Shortcodes_Catcher' => $baseDir . '/classes/shortcodes/class-wpml-tm-shortcodes-catcher.php',
'WPML_TM_Shortcodes_Catcher_Factory' => $baseDir . '/classes/shortcodes/class-wpml-tm-shortcodes-catcher-factory.php',
'WPML_TM_String' => $baseDir . '/classes/words-count/class-wpml-tm-string.php',
'WPML_TM_String_Basket_Request' => $baseDir . '/classes/wpml-st/class-wpml-tm-string-basket-request.php',
'WPML_TM_String_Xliff_Reader' => $baseDir . '/classes/xliff/class-wpml-tm-string-xliff-reader.php',
'WPML_TM_Support_Info' => $baseDir . '/classes/support/class-wpml-tm-support-info.php',
'WPML_TM_Support_Info_Filter' => $baseDir . '/classes/support/class-wpml-tm-support-info-filter.php',
'WPML_TM_Sync_Installer_Wrapper' => $baseDir . '/classes/translation-proxy/sync-jobs/class-wpml-tp-sync-installer-wrapper.php',
'WPML_TM_Sync_Jobs_Revision' => $baseDir . '/classes/translation-proxy/sync-jobs/class-wpml-tp-sync-jobs-revision.php',
'WPML_TM_Sync_Jobs_Status' => $baseDir . '/classes/translation-proxy/sync-jobs/class-wpml-tp-sync-jobs-status.php',
'WPML_TM_TF_AJAX_Feedback_List_Hooks_Factory' => $baseDir . '/classes/translation-feedback/factories/action-loaders/wpml-tm-tf-ajax-feedback-list-hooks-factory.php',
'WPML_TM_TF_Feedback_List_Hooks' => $baseDir . '/classes/translation-feedback/hooks/wpml-tm-tf-feedback-list-hooks.php',
'WPML_TM_TF_Feedback_List_Hooks_Factory' => $baseDir . '/classes/translation-feedback/factories/action-loaders/wpml-tm-tf-feedback-list-hooks-factory.php',
'WPML_TM_TF_Module' => $baseDir . '/classes/translation-feedback/wpml-tm-tf-module.php',
'WPML_TM_TS_Instructions_Hooks' => $baseDir . '/classes/notices/translation-service-instruction/class-wpml-tm-ts-instructions-hooks.php',
'WPML_TM_TS_Instructions_Hooks_Factory' => $baseDir . '/classes/notices/translation-service-instruction/class-wpml-tm-ts-instructions-hooks-factory.php',
'WPML_TM_TS_Instructions_Notice' => $baseDir . '/classes/notices/translation-service-instruction/class-wpml-tm-ts-instructions-notice.php',
'WPML_TM_Translatable_Element' => $baseDir . '/classes/words-count/class-wpml-tm-translatable-element.php',
'WPML_TM_Translatable_Element_Provider' => $baseDir . '/classes/words-count/class-wpml-tm-translatable-element-provider.php',
'WPML_TM_Translate_Independently' => $baseDir . '/classes/menu/translation-basket/class-wpml-tm-translate-independently.php',
'WPML_TM_Translated_Field' => $baseDir . '/classes/class-wpml-tm-translated-field.php',
'WPML_TM_Translation_Basket_Dialog_Hooks' => $baseDir . '/classes/translation-basket/wpml-tm-translation-basket-dialog-hooks.php',
'WPML_TM_Translation_Basket_Dialog_View' => $baseDir . '/classes/translation-basket/wpml-tm-translation-basket-dialog-view.php',
'WPML_TM_Translation_Basket_Hooks_Factory' => $baseDir . '/classes/translation-basket/class-wpml-tm-translation-basket-hooks-factory.php',
'WPML_TM_Translation_Basket_Validation_Notice' => $baseDir . '/classes/translation-basket/class-wpml-tm-translation-basket-validation-notice.php',
'WPML_TM_Translation_Batch' => $baseDir . '/classes/translation-batch/class-wpml-tm-translation-batch.php',
'WPML_TM_Translation_Batch_Element' => $baseDir . '/classes/translation-batch/class-wpml-tm-translation-batch-element.php',
'WPML_TM_Translation_Batch_Factory' => $baseDir . '/classes/translation-batch/class-wpml-tm-translation-batch-factory.php',
'WPML_TM_Translation_Jobs_Fix_Summary' => $baseDir . '/classes/notices/translation-jobs-migration/class-wpml-tm-translation-jobs-fix-summary.php',
'WPML_TM_Translation_Jobs_Fix_Summary_Factory' => $baseDir . '/classes/notices/translation-jobs-migration/class-wpml-tm-translation-jobs-fix-summary-factory.php',
'WPML_TM_Translation_Jobs_Fix_Summary_Notice' => $baseDir . '/classes/notices/translation-jobs-migration/class-wpml-tm-translation-jobs-fix-summary-notice.php',
'WPML_TM_Translation_Priorities' => $baseDir . '/classes/translation-priorities/class-wpml-tm-translation-priorities.php',
'WPML_TM_Translation_Priorities_Factory' => $baseDir . '/classes/translation-priorities/class-wpml-tm-translation-priorities-factory.php',
'WPML_TM_Translation_Priorities_Register_Action' => $baseDir . '/classes/translation-priorities/class-wpml-tm-translation-priorities-register-action.php',
'WPML_TM_Translation_Roles_Section' => $baseDir . '/classes/menu/translation-roles/class-wpml-tm-translation-roles-section.php',
'WPML_TM_Translation_Roles_Section_Factory' => $baseDir . '/classes/menu/translation-roles/class-wpml-tm-translation-roles-section-factory.php',
'WPML_TM_Translation_Status' => $baseDir . '/classes/filters/class-wpml-tm-translation-status.php',
'WPML_TM_Translation_Status_Display' => $baseDir . '/classes/filters/class-wpml-tm-translation-status-display.php',
'WPML_TM_Translator_Note' => $baseDir . '/classes/translation-jobs/class-wpml-tm-translator-note.php',
'WPML_TM_Translators_Dropdown' => $baseDir . '/classes/class-wpml-tm-translators-dropdown.php',
'WPML_TM_Translators_View' => $baseDir . '/classes/menu/translation-roles/class-wpml-tm-translators-view.php',
'WPML_TM_Troubleshooting_Clear_TS' => $baseDir . '/classes/class-wpml-tm-troubleshooting-clear-ts.php',
'WPML_TM_Troubleshooting_Clear_TS_UI' => $baseDir . '/classes/class-wpml-tm-troubleshooting-clear-ts-ui.php',
'WPML_TM_Troubleshooting_Fix_Translation_Jobs_TP_ID' => $baseDir . '/classes/notices/translation-jobs-migration/class-wpml-tm-troubleshooting-fix-translation-jobs-tp-id.php',
'WPML_TM_Troubleshooting_Fix_Translation_Jobs_TP_ID_Factory' => $baseDir . '/classes/notices/translation-jobs-migration/class-wpml-tm-troubleshooting-fix-translation-jobs-tp-id-factory.php',
'WPML_TM_Troubleshooting_Reset_Pro_Trans_Config' => $baseDir . '/classes/troubleshooting/class-wpml-tm-troubleshooting-reset-pro-trans-config.php',
'WPML_TM_Troubleshooting_Reset_Pro_Trans_Config_UI' => $baseDir . '/classes/troubleshooting/class-wpml-tm-troubleshooting-reset-pro-trans-config-ui.php',
'WPML_TM_Troubleshooting_Reset_Pro_Trans_Config_UI_Factory' => $baseDir . '/classes/troubleshooting/class-wpml-tm-troubleshooting-reset-pro-trans-config-ui-factory.php',
'WPML_TM_Unsent_Jobs' => $baseDir . '/classes/translation-jobs/class-wpml-tm-unsent-jobs.php',
'WPML_TM_Unsent_Jobs_Notice' => $baseDir . '/classes/translation-jobs/notices/class-wpml-tm-unsent-jobs-notice.php',
'WPML_TM_Unsent_Jobs_Notice_Hooks' => $baseDir . '/classes/translation-jobs/notices/class-wpml-tm-unsent-jobs-notice-hooks.php',
'WPML_TM_Unsent_Jobs_Notice_Template' => $baseDir . '/classes/translation-jobs/notices/class-wpml-tm-unsent-jobs-notice-template.php',
'WPML_TM_Update_External_Translation_Data_Action' => $baseDir . '/inc/translation-jobs/helpers/wpml-update-external-translation-data-action.class.php',
'WPML_TM_Update_Post_Translation_Data_Action' => $baseDir . '/inc/translation-jobs/helpers/wpml-update-post-translation-data-action.class.php',
'WPML_TM_Update_Translation_Data_Action' => $baseDir . '/inc/translation-jobs/helpers/wpml-update-translation-data-action.class.php',
'WPML_TM_Update_Translation_Status' => $baseDir . '/classes/records/class-wpml-tm-update-translation-status.php',
'WPML_TM_Upgrade_Cancel_Orphan_Jobs' => $baseDir . '/classes/upgrade/commands/wpml-tm-upgrade-cancel-orphan-jobs.php',
'WPML_TM_Upgrade_Default_Editor_For_Old_Jobs' => $baseDir . '/classes/upgrade/commands/class-wpml-tm-upgrade-default-editor-for-old-jobs.php',
'WPML_TM_Upgrade_Loader' => $baseDir . '/classes/upgrade/class-wpml-tm-upgrade-loader.php',
'WPML_TM_Upgrade_Loader_Factory' => $baseDir . '/classes/upgrade/class-wpml-tm-upgrade-loader-factory.php',
'WPML_TM_Upgrade_Service_Redirect_To_Field' => $baseDir . '/classes/upgrade/commands/class-wpml-tm-upgrade-service-redirect-to-field.php',
'WPML_TM_Upgrade_Translation_Priorities_For_Posts' => $baseDir . '/classes/upgrade/commands/class-wpml-tm-upgrade-translation-priorities-for-posts.php',
'WPML_TM_Upgrade_WPML_Site_ID_ATE' => $baseDir . '/classes/upgrade/commands/class-wpml-tm-upgrade-wpml-site-id-ate.php',
'WPML_TM_Validate_HTML' => $baseDir . '/classes/xliff/class-wpml-tm-validate-html.php',
'WPML_TM_WP_Query' => $baseDir . '/classes/menu/dashboard/class-wpml-tm-wp-query.php',
'WPML_TM_Wizard_Options' => $baseDir . '/classes/wizard/class-wpml-tm-wizard-options.php',
'WPML_TM_Wizard_Steps' => $baseDir . '/classes/wizard/class-wpml-tm-wizard-steps.php',
'WPML_TM_Wizard_Steps_Factory' => $baseDir . '/classes/wizard/class-wpml-tm-wizard-steps-factory.php',
'WPML_TM_Wizard_Summary_Step' => $baseDir . '/classes/wizard/steps/class-wpml-tm-wizard-summary.php',
'WPML_TM_Wizard_Translation_Editor_Step' => $baseDir . '/classes/wizard/steps/class-wpml-tm-wizard-editor.php',
'WPML_TM_Wizard_Who_Will_Translate_Step' => $baseDir . '/classes/wizard/steps/class-wpml-tm-wizard-who-will-translate-step.php',
'WPML_TM_Word_Calculator' => $baseDir . '/classes/words-count/processor/calculator/wpml-tm-word-calculator.php',
'WPML_TM_Word_Calculator_Post_Custom_Fields' => $baseDir . '/classes/words-count/processor/calculator/post/wpml-tm-word-calculator-post-custom-fields.php',
'WPML_TM_Word_Calculator_Post_Object' => $baseDir . '/classes/words-count/processor/calculator/post/wpml-tm-word-calculator-post-object.php',
'WPML_TM_Word_Calculator_Post_Packages' => $baseDir . '/classes/words-count/processor/calculator/post/wpml-tm-word-calculator-post-packages.php',
'WPML_TM_Word_Count_Admin_Hooks' => $baseDir . '/classes/words-count/hooks/wpml-tm-word-count-admin-hooks.php',
'WPML_TM_Word_Count_Ajax_Hooks' => $baseDir . '/classes/words-count/hooks/wpml-tm-word-count-ajax-hooks.php',
'WPML_TM_Word_Count_Background_Process' => $baseDir . '/classes/words-count/queue/background-process/wpml-tm-word-count-background-process.php',
'WPML_TM_Word_Count_Background_Process_Factory' => $baseDir . '/classes/words-count/queue/background-process/wpml-tm-word-count-background-process-factory.php',
'WPML_TM_Word_Count_Background_Process_Requested_Types' => $baseDir . '/classes/words-count/queue/background-process/wpml-tm-word-count-background-process-requested-types.php',
'WPML_TM_Word_Count_Hooks_Factory' => $baseDir . '/classes/words-count/hooks/wpml-tm-word-count-hooks-factory.php',
'WPML_TM_Word_Count_Post_Records' => $baseDir . '/classes/words-count/records/wpml-tm-word-count-post-records.php',
'WPML_TM_Word_Count_Process_Hooks' => $baseDir . '/classes/words-count/hooks/wpml-tm-word-count-process-hooks.php',
'WPML_TM_Word_Count_Queue_Items_Requested_Types' => $baseDir . '/classes/words-count/queue/items/wpml-tm-word-count-queue-items-requested-types.php',
'WPML_TM_Word_Count_Records' => $baseDir . '/classes/words-count/records/wpml-tm-word-count-records.php',
'WPML_TM_Word_Count_Records_Factory' => $baseDir . '/classes/words-count/records/wpml-tm-word-count-records-factory.php',
'WPML_TM_Word_Count_Refresh_Hooks' => $baseDir . '/classes/words-count/hooks/wpml-tm-word-count-refresh-hooks.php',
'WPML_TM_Word_Count_Report' => $baseDir . '/classes/words-count/report/wpml-tm-word-count-report.php',
'WPML_TM_Word_Count_Report_View' => $baseDir . '/classes/words-count/report/wpml-tm-word-count-report-view.php',
'WPML_TM_Word_Count_Set_Package' => $baseDir . '/classes/words-count/processor/wpml-tm-word-count-set-package.php',
'WPML_TM_Word_Count_Set_Post' => $baseDir . '/classes/words-count/processor/wpml-tm-word-count-set-post.php',
'WPML_TM_Word_Count_Set_String' => $baseDir . '/classes/words-count/processor/wpml-tm-word-count-set-string.php',
'WPML_TM_Word_Count_Setters_Factory' => $baseDir . '/classes/words-count/processor/wpml-tm-word-count-setters-factory.php',
'WPML_TM_Word_Count_Single_Process' => $baseDir . '/classes/words-count/processor/wpml-tm-word-count-single-process.php',
'WPML_TM_Word_Count_Single_Process_Factory' => $baseDir . '/classes/words-count/processor/wpml-tm-word-count-single-process-factory.php',
'WPML_TM_XLIFF' => $baseDir . '/classes/xliff/wpml-tm-xliff.php',
'WPML_TM_XLIFF_Factory' => $baseDir . '/classes/xliff/class-wpml-tm-xliff-factory.php',
'WPML_TM_XLIFF_Phase' => $baseDir . '/classes/xliff/classs-wpml-tm-xliff-phase.php',
'WPML_TM_XLIFF_Post_Type' => $baseDir . '/classes/xliff/class-wpml-tm-xliff-post-type.php',
'WPML_TM_XLIFF_Shortcodes' => $baseDir . '/classes/xliff/class-wpml-tm-xliff-shortcodes.php',
'WPML_TM_XLIFF_Translator_Notes' => $baseDir . '/classes/xliff/class-wpml-tm-xliff-translator-notes.php',
'WPML_TM_Xliff_Frontend' => $baseDir . '/classes/xliff/class-wpml-tm-xliff-frontend.php',
'WPML_TM_Xliff_Reader' => $baseDir . '/classes/xliff/class-wpml-tm-xliff-reader.php',
'WPML_TM_Xliff_Reader_Factory' => $baseDir . '/classes/xliff/class-wpml-tm-xliff-reader-factory.php',
'WPML_TM_Xliff_Shared' => $baseDir . '/classes/xliff/class-wpml-tm-xliff-shared.php',
'WPML_TM_Xliff_Writer' => $baseDir . '/classes/xliff/class-wpml-tm-xliff-writer.php',
'WPML_TP_API' => $baseDir . '/classes/translation-proxy/api/class-wpml-tp-api.php',
'WPML_TP_API_Batches' => $baseDir . '/classes/tp-client/api/wpml-tp-api-batches.php',
'WPML_TP_API_Client' => $baseDir . '/classes/translation-proxy/api/class-wpml-tp-api-client.php',
'WPML_TP_API_Exception' => $baseDir . '/classes/translation-proxy/api/class-wpml-tp-api-exception.php',
'WPML_TP_API_Log_Interface' => $baseDir . '/classes/translation-proxy/api/class-wpml-tp-api-log-interface.php',
'WPML_TP_API_Request' => $baseDir . '/classes/translation-proxy/api/class-wpml-tp-api-request.php',
'WPML_TP_API_Services' => $baseDir . '/classes/tp-client/api/wpml-tp-api-services.php',
'WPML_TP_API_TF_Feedback' => $baseDir . '/classes/tp-client/api/wpml-tp-api-tf-feedback.php',
'WPML_TP_API_TF_Ratings' => $baseDir . '/classes/tp-client/api/wpml-tp-api-tf-ratings.php',
'WPML_TP_Abstract_API' => $baseDir . '/classes/tp-client/api/wpml-tp-abstract-api.php',
'WPML_TP_Apply_Single_Job' => $baseDir . '/classes/translation-proxy/translations/apply/class-wpml-tp-apply-single-job.php',
'WPML_TP_Apply_Translation_Post_Strategy' => $baseDir . '/classes/translation-proxy/translations/apply/class-wpml-tp-apply-translation-post-strategy.php',
'WPML_TP_Apply_Translation_Strategies' => $baseDir . '/classes/translation-proxy/translations/apply/class-wpml-tp-apply-translation-strategies.php',
'WPML_TP_Apply_Translation_Strategy' => $baseDir . '/classes/translation-proxy/translations/apply/class-wpml-tp-apply-translation-strategy.php',
'WPML_TP_Apply_Translation_String_Strategy' => $baseDir . '/classes/translation-proxy/translations/apply/class-wpml-tp-apply-translation-string-strategy.php',
'WPML_TP_Apply_Translations' => $baseDir . '/classes/translation-proxy/translations/class-wpml-tp-apply-translation.php',
'WPML_TP_Batch' => $baseDir . '/classes/tp-client/tp-rest-objects/wpml-tp-batch.php',
'WPML_TP_Batch_Exception' => $baseDir . '/classes/tp-client/exceptions/wpml-tp-batch-exception.php',
'WPML_TP_Batch_Sync_API' => $baseDir . '/classes/translation-proxy/api/class-wpml-tp-batch-sync-api.php',
'WPML_TP_Client' => $baseDir . '/classes/tp-client/wpml-tp-client.php',
'WPML_TP_Client_Factory' => $baseDir . '/classes/tp-client/wpml-tp-client-factory.php',
'WPML_TP_Exception' => $baseDir . '/classes/tp-client/exceptions/wpml-tp-exception.php',
'WPML_TP_Extra_Field' => $baseDir . '/classes/translation-proxy/models/wpml-tp-extra-field.php',
'WPML_TP_Extra_Field_Display' => $baseDir . '/classes/translation-proxy/ui/wpml-tp-extra-field-display.php',
'WPML_TP_HTTP_Request_Filter' => $baseDir . '/classes/translation-proxy/class-wpml-tp-http-request-filter.php',
'WPML_TP_Job' => $baseDir . '/classes/tp-client/tp-rest-objects/wpml-tp-job.php',
'WPML_TP_Job_Factory' => $baseDir . '/classes/tp-client/tp-rest-objects/wpml-tp-job-factory.php',
'WPML_TP_Job_States' => $baseDir . '/classes/translation-proxy/api/class-wpml-tp-job-states.php',
'WPML_TP_Job_Status' => $baseDir . '/classes/translation-proxy/api/class-wpml-tp-job-status.php',
'WPML_TP_Jobs_API' => $baseDir . '/classes/translation-proxy/api/class-wpml-tp-jobs-api.php',
'WPML_TP_Jobs_Collection' => $baseDir . '/classes/tp-client/class-wpml-tp-jobs-collection.php',
'WPML_TP_Jobs_Collection_Factory' => $baseDir . '/classes/tp-client/wpml-tp-jobs-collection-factory.php',
'WPML_TP_Lock' => $baseDir . '/classes/translation-proxy/lock/wpml-tp-lock.php',
'WPML_TP_Lock_Factory' => $baseDir . '/classes/translation-proxy/lock/wpml-tp-lock-factory.php',
'WPML_TP_Lock_Notice' => $baseDir . '/classes/translation-proxy/lock/wpml-tp-lock-notice.php',
'WPML_TP_Lock_Notice_Factory' => $baseDir . '/classes/translation-proxy/lock/wpml-tp-lock-notice-factory.php',
'WPML_TP_Project' => $baseDir . '/classes/tp-client/wpml-tp-project.php',
'WPML_TP_Project_API' => $baseDir . '/classes/translation-proxy/api/class-wpml-tp-project-api.php',
'WPML_TP_Project_User' => $baseDir . '/classes/translation-proxy/class-wpml-tp-project-user.php',
'WPML_TP_REST_Object' => $baseDir . '/classes/tp-client/tp-rest-objects/wpml-tp-rest-object.php',
'WPML_TP_Refresh_Language_Pairs' => $baseDir . '/classes/translation-proxy/class-wpml-tp-refresh-language-pairs.php',
'WPML_TP_Service' => $baseDir . '/classes/tp-client/tp-rest-objects/wpml-tp-service.php',
'WPML_TP_Services' => $baseDir . '/classes/translation-proxy/api/class-wpml-tp-services.php',
'WPML_TP_String_Job' => $baseDir . '/classes/translation-proxy/class-wpml-tp-string-job.php',
'WPML_TP_Sync_Ajax_Handler' => $baseDir . '/classes/translation-proxy/sync-jobs/class-wpml-tp-sync-ajax-handler.php',
'WPML_TP_Sync_Jobs' => $baseDir . '/classes/translation-proxy/sync-jobs/class-wpml-tp-sync-jobs.php',
'WPML_TP_Sync_Orphan_Jobs' => $baseDir . '/classes/translation-proxy/sync-jobs/wpml-tp-sync-orphan-jobs.php',
'WPML_TP_Sync_Orphan_Jobs_Factory' => $baseDir . '/classes/translation-proxy/sync-jobs/wpml-tp-sync-orphan-jobs-factory.php',
'WPML_TP_Sync_Update_Job' => $baseDir . '/classes/translation-proxy/sync-jobs/class-wpml-tp-sync-update-job.php',
'WPML_TP_TM_Jobs' => $baseDir . '/classes/tp-client/wpml-tp-tm-jobs.php',
'WPML_TP_Translation' => $baseDir . '/classes/translation-proxy/translations/class-wpml-tp-translation.php',
'WPML_TP_Translation_Collection' => $baseDir . '/classes/translation-proxy/translations/class-wpml-tp-translation-collection.php',
'WPML_TP_Translations_Repository' => $baseDir . '/classes/translation-proxy/translations/class-wpml-tp-translations-repository.php',
'WPML_TP_Translator' => $baseDir . '/classes/translation-proxy/class-wpml-tp-translator.php',
'WPML_TP_XLIFF_API' => $baseDir . '/classes/translation-proxy/api/class-wpml-tp-xliff-api.php',
'WPML_TP_Xliff_Parser' => $baseDir . '/classes/translation-proxy/api/class-wpml-tp-xliff-parser.php',
'WPML_Translate_Link_Target_Global_State' => $baseDir . '/classes/translate_link_targets/class-wpml-translate-link-target-global-state.php',
'WPML_Translate_Link_Targets_In_Content' => $baseDir . '/classes/translate_link_targets/class-wpml-translate-link-targets-in-content.php',
'WPML_Translate_Link_Targets_In_Posts' => $baseDir . '/classes/translate_link_targets/class-wpml-translate-link-targets-in-posts.php',
'WPML_Translate_Link_Targets_In_Posts_Global' => $baseDir . '/classes/translate_link_targets/class-wpml-translate-link-targets-in-posts-global.php',
'WPML_Translate_Link_Targets_In_Strings' => $baseDir . '/classes/translate_link_targets/class-wpml-translate-link-targets-in-strings.php',
'WPML_Translate_Link_Targets_In_Strings_Global' => $baseDir . '/classes/translate_link_targets/class-wpml-translate-link-targets-in-strings-global.php',
'WPML_Translate_Link_Targets_UI' => $baseDir . '/classes/menu/mcsetup/class-wpml-translate-link-targets-ui.php',
'WPML_TranslationProxy_Com_Log' => $baseDir . '/classes/translation-proxy/class-wpml-translationproxy-com-log.php',
'WPML_TranslationProxy_Communication_Log' => $baseDir . '/classes/translation-proxy/log/class-wpml-translationproxy-communication-log.php',
'WPML_Translation_Basket' => $baseDir . '/inc/translation-proxy/wpml-translation-basket.class.php',
'WPML_Translation_Basket_Validation' => $baseDir . '/classes/translation-basket/class-wpml-translation-basket-validation.php',
'WPML_Translation_Batch' => $baseDir . '/inc/translation-jobs/wpml-translation-batch.class.php',
'WPML_Translation_Batch_Factory' => $baseDir . '/inc/translation-jobs/class-wpml-translation-batch-factory.php',
'WPML_Translation_Editor' => $baseDir . '/classes/menu/translation-editor/class-wpml-translation-editor.php',
'WPML_Translation_Editor_Header' => $baseDir . '/classes/menu/translation-editor/class-wpml-translation-editor-header.php',
'WPML_Translation_Editor_Languages' => $baseDir . '/classes/menu/translation-editor/class-wpml-translation-editor-languages.php',
'WPML_Translation_Editor_UI' => $baseDir . '/classes/menu/translation-editor/class-wpml-translation-editor-ui.php',
'WPML_Translation_Job' => $baseDir . '/inc/translation-jobs/jobs/wpml-translation-job.class.php',
'WPML_Translation_Job_Factory' => $baseDir . '/classes/class-wpml-translation-job-factory.php',
'WPML_Translation_Job_Helper' => $baseDir . '/inc/translation-jobs/helpers/wpml-translation-job-helper.class.php',
'WPML_Translation_Job_Helper_With_API' => $baseDir . '/inc/translation-jobs/helpers/wpml-translation-job-helper-with-api.class.php',
'WPML_Translation_Jobs_Collection' => $baseDir . '/inc/translation-jobs/wpml-translation-jobs-collection.class.php',
'WPML_Translation_Jobs_Fixing_Migration_Ajax' => $baseDir . '/classes/notices/translation-jobs-migration/class-wpml-translation-jobs-fixing-migration-ajax.php',
'WPML_Translation_Jobs_Migration' => $baseDir . '/classes/notices/translation-jobs-migration/class-wpml-translation-jobs-migration.php',
'WPML_Translation_Jobs_Migration_Ajax' => $baseDir . '/classes/notices/translation-jobs-migration/class-wpml-translation-jobs-migration-ajax.php',
'WPML_Translation_Jobs_Migration_Hooks' => $baseDir . '/classes/notices/translation-jobs-migration/class-wpml-translation-jobs-migration-hooks.php',
'WPML_Translation_Jobs_Migration_Hooks_Factory' => $baseDir . '/classes/notices/translation-jobs-migration/class-wpml-translation-jobs-migration-hooks-factory.php',
'WPML_Translation_Jobs_Migration_Notice' => $baseDir . '/classes/notices/translation-jobs-migration/class-wpml-translation-jobs-migration-notice.php',
'WPML_Translation_Jobs_Migration_Repository' => $baseDir . '/classes/notices/translation-jobs-migration/class-wpml-translation-jobs-migration-repository.php',
'WPML_Translation_Jobs_Missing_TP_ID_Migration_Notice' => $baseDir . '/classes/notices/translation-jobs-migration/class-wpml-translation-jobs-missing-tp-id-migration-notice.php',
'WPML_Translation_Management' => $baseDir . '/classes/class-wpml-translation-management.php',
'WPML_Translation_Manager_Ajax' => $baseDir . '/classes/menu/translation-roles/class-wpml-translation-manager-ajax-actions.php',
'WPML_Translation_Manager_Records' => $baseDir . '/classes/user/class-wpml-translation-manager-records.php',
'WPML_Translation_Manager_Settings' => $baseDir . '/classes/menu/translation-roles/class-wpml-translation-manager-settings.php',
'WPML_Translation_Manager_View' => $baseDir . '/classes/menu/translation-roles/class-wpml-translation-manager-view.php',
'WPML_Translation_Proxy_API' => $baseDir . '/classes/class-wpml-translation-proxy-api.php',
'WPML_Translation_Proxy_Basket_Networking' => $baseDir . '/inc/translation-proxy/wpml-translationproxy-basket-networking.class.php',
'WPML_Translation_Proxy_Networking' => $baseDir . '/classes/translation-proxy/class-wpml-translation-proxy-networking.php',
'WPML_Translation_Roles_Ajax' => $baseDir . '/classes/menu/translation-roles/class-wpml-translation-roles-ajax-actions.php',
'WPML_Translation_Roles_Ajax_Factory' => $baseDir . '/classes/menu/translation-roles/class-wpml-translation-roles-ajax-factory.php',
'WPML_Translation_Roles_Records' => $baseDir . '/classes/user/class-wpml-translation-roles-records.php',
'WPML_Translations_Queue' => $baseDir . '/classes/menu/translation-queue/class-wpml-translations-queue.php',
'WPML_Translations_Queue_Factory' => $baseDir . '/classes/menu/translation-queue/class-wpml-translations-queue-factory.php',
'WPML_Translations_Queue_Jobs_Model' => $baseDir . '/classes/menu/translation-queue/class-wpml-translations-queue-jobs-model.php',
'WPML_Translations_Queue_Pagination_UI' => $baseDir . '/classes/menu/translation-queue/class-wpml-translations-queue-pagination-ui.php',
'WPML_Translator_Admin_Records' => $baseDir . '/classes/user/class-wpml-translator-admin-records.php',
'WPML_Translator_Ajax' => $baseDir . '/classes/menu/translation-roles/class-wpml-translator-ajax-actions.php',
'WPML_Translator_Records' => $baseDir . '/classes/user/class-wpml-translator-records.php',
'WPML_Translator_Role' => $baseDir . '/classes/roles/class-wpml-translator-role.php',
'WPML_Translator_Settings' => $baseDir . '/classes/menu/translation-roles/wpml-translator-settings.class.php',
'WPML_Translator_Settings_Interface' => $baseDir . '/classes/menu/translation-roles/wpml-translator-setings-interface.php',
'WPML_Translator_Settings_Proxy' => $baseDir . '/classes/menu/translation-roles/wpml-translator-settings-proxy.php',
'WPML_Translator_View' => $baseDir . '/classes/menu/translation-roles/class-wpml-translator-view.php',
'WPML_Update_PickUp_Method' => $baseDir . '/classes/translation-proxy/class-wpml-update-pickup-method.php',
'WPML_User_Jobs_Notification_Settings' => $baseDir . '/classes/user/wpml-user-jobs-notification-settings.php',
'WPML_User_Jobs_Notification_Settings_Render' => $baseDir . '/classes/user/wpml-user-jobs-notification-settings-render.php',
'WPML_User_Jobs_Notification_Settings_Template' => $baseDir . '/classes/user/wpml-user-jobs-notification-settings-template.php',
'WPML_WP_Cron_Check' => $baseDir . '/classes/utils/wpml-wp-cron-check.php',
'WP_Async_Request' => $vendorDir . '/a5hleyrich/wp-background-processing/classes/wp-async-request.php',
'WP_Background_Process' => $vendorDir . '/a5hleyrich/wp-background-processing/classes/wp-background-process.php',
'wpml_zip' => $baseDir . '/inc/wpml_zip.php',
);

View File

@@ -0,0 +1,10 @@
<?php
// autoload_files.php @generated by Composer
$vendorDir = dirname(dirname(__FILE__));
$baseDir = dirname($vendorDir);
return array(
'b45b351e6b6f7487d819961fef2fda77' => $vendorDir . '/jakeasmith/http_build_url/src/http_build_url.php',
);

View File

@@ -0,0 +1,9 @@
<?php
// autoload_namespaces.php @generated by Composer
$vendorDir = dirname(dirname(__FILE__));
$baseDir = dirname($vendorDir);
return array(
);

View File

@@ -0,0 +1,9 @@
<?php
// autoload_psr4.php @generated by Composer
$vendorDir = dirname(dirname(__FILE__));
$baseDir = dirname($vendorDir);
return array(
);

View File

@@ -0,0 +1,73 @@
<?php
// autoload_real.php @generated by Composer
class ComposerAutoloaderInitcf33eb903f9fa638ba4a6cac437df73a
{
private static $loader;
public static function loadClassLoader($class)
{
if ('Composer\Autoload\ClassLoader' === $class) {
require __DIR__ . '/ClassLoader.php';
}
}
/**
* @return \Composer\Autoload\ClassLoader
*/
public static function getLoader()
{
if (null !== self::$loader) {
return self::$loader;
}
spl_autoload_register(array('ComposerAutoloaderInitcf33eb903f9fa638ba4a6cac437df73a', 'loadClassLoader'), true, true);
self::$loader = $loader = new \Composer\Autoload\ClassLoader();
spl_autoload_unregister(array('ComposerAutoloaderInitcf33eb903f9fa638ba4a6cac437df73a', 'loadClassLoader'));
$useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
if ($useStaticLoader) {
require_once __DIR__ . '/autoload_static.php';
call_user_func(\Composer\Autoload\ComposerStaticInitcf33eb903f9fa638ba4a6cac437df73a::getInitializer($loader));
} else {
$map = require __DIR__ . '/autoload_namespaces.php';
foreach ($map as $namespace => $path) {
$loader->set($namespace, $path);
}
$map = require __DIR__ . '/autoload_psr4.php';
foreach ($map as $namespace => $path) {
$loader->setPsr4($namespace, $path);
}
$classMap = require __DIR__ . '/autoload_classmap.php';
if ($classMap) {
$loader->addClassMap($classMap);
}
}
$loader->register(true);
if ($useStaticLoader) {
$includeFiles = Composer\Autoload\ComposerStaticInitcf33eb903f9fa638ba4a6cac437df73a::$files;
} else {
$includeFiles = require __DIR__ . '/autoload_files.php';
}
foreach ($includeFiles as $fileIdentifier => $file) {
composerRequirecf33eb903f9fa638ba4a6cac437df73a($fileIdentifier, $file);
}
return $loader;
}
}
function composerRequirecf33eb903f9fa638ba4a6cac437df73a($fileIdentifier, $file)
{
if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
require $file;
$GLOBALS['__composer_autoload_files'][$fileIdentifier] = true;
}
}

View File

@@ -0,0 +1,650 @@
<?php
// autoload_static.php @generated by Composer
namespace Composer\Autoload;
class ComposerStaticInitcf33eb903f9fa638ba4a6cac437df73a
{
public static $files = array (
'b45b351e6b6f7487d819961fef2fda77' => __DIR__ . '/..' . '/jakeasmith/http_build_url/src/http_build_url.php',
);
public static $classMap = array (
'IWPML_TM_Admin_Section' => __DIR__ . '/../..' . '/classes/menu/iwpml-tm-admin-section.php',
'IWPML_TM_Admin_Section_Factory' => __DIR__ . '/../..' . '/classes/menu/iwpml-tm-admin-section-factory.php',
'IWPML_TM_Count' => __DIR__ . '/../..' . '/classes/words-count/count/iwpml-tm-count.php',
'IWPML_TM_Word_Calculator_Post' => __DIR__ . '/../..' . '/classes/words-count/processor/calculator/post/iwpml-tm-word-calculator-post.php',
'IWPML_TM_Word_Count_Queue_Items' => __DIR__ . '/../..' . '/classes/words-count/queue/items/iwpml-tm-word-count-queue-items.php',
'IWPML_TM_Word_Count_Set' => __DIR__ . '/../..' . '/classes/words-count/processor/iwpml-tm-word-count-set.php',
'IWPML_Translation_Roles_View' => __DIR__ . '/../..' . '/classes/menu/translation-roles/class-wpml-translation-roles-view.php',
'SitePress_Table' => __DIR__ . '/../..' . '/menu/sitepress-table.class.php',
'SitePress_Table_Basket' => __DIR__ . '/../..' . '/classes/menu/translation-basket/sitepress-table-basket.class.php',
'TranslationProxy' => __DIR__ . '/../..' . '/inc/translation-proxy/translationproxy.class.php',
'TranslationProxy_Api' => __DIR__ . '/../..' . '/inc/translation-proxy/translationproxy-api.class.php',
'TranslationProxy_Basket' => __DIR__ . '/../..' . '/inc/translation-proxy/translationproxy-basket.class.php',
'TranslationProxy_Batch' => __DIR__ . '/../..' . '/inc/translation-proxy/translationproxy-batch.class.php',
'TranslationProxy_Popup' => __DIR__ . '/../..' . '/inc/translation-proxy/translationproxy-popup.class.php',
'TranslationProxy_Project' => __DIR__ . '/../..' . '/inc/translation-proxy/translationproxy-project.class.php',
'TranslationProxy_Service' => __DIR__ . '/../..' . '/inc/translation-proxy/translationproxy-service.class.php',
'TranslationProxy_Translator' => __DIR__ . '/../..' . '/inc/translation-proxy/translationproxy-translator.class.php',
'WPMLTranslationProxyApiException' => __DIR__ . '/../..' . '/classes/translation-proxy/api/class-wpml-translation-proxy-api-exception.php',
'WPML\\TM\\ATE\\ClonedSites\\ApiCommunication' => __DIR__ . '/../..' . '/classes/ATE/API/ClonedSites/ApiCommunication.php',
'WPML\\TM\\ATE\\ClonedSites\\FingerprintGenerator' => __DIR__ . '/../..' . '/classes/ATE/API/ClonedSites/FingerprintGenerator.php',
'WPML\\TM\\ATE\\ClonedSites\\Lock' => __DIR__ . '/../..' . '/classes/ATE/API/ClonedSites/Lock.php',
'WPML\\TM\\ATE\\ClonedSites\\Report' => __DIR__ . '/../..' . '/classes/ATE/API/ClonedSites/Report.php',
'WPML\\TM\\ATE\\ClonedSites\\ReportAjax' => __DIR__ . '/../..' . '/classes/ATE/API/ClonedSites/ReportAjax.php',
'WPML\\TM\\ATE\\Download\\Consumer' => __DIR__ . '/../..' . '/classes/ATE/Download/Consumer.php',
'WPML\\TM\\ATE\\Download\\Job' => __DIR__ . '/../..' . '/classes/ATE/Download/Job.php',
'WPML\\TM\\ATE\\Download\\Process' => __DIR__ . '/../..' . '/classes/ATE/Download/Process.php',
'WPML\\TM\\ATE\\Download\\Queue' => __DIR__ . '/../..' . '/classes/ATE/Download/Queue.php',
'WPML\\TM\\ATE\\Download\\Result' => __DIR__ . '/../..' . '/classes/ATE/Download/Result.php',
'WPML\\TM\\ATE\\Hooks\\ReturnedJobActions' => __DIR__ . '/../..' . '/classes/ATE/Hooks/ReturnedJobActions.php',
'WPML\\TM\\ATE\\Hooks\\ReturnedJobActionsFactory' => __DIR__ . '/../..' . '/classes/ATE/Hooks/ReturnedJobActionsFactory.php',
'WPML\\TM\\ATE\\JobRecord' => __DIR__ . '/../..' . '/classes/ATE/JobRecord.php',
'WPML\\TM\\ATE\\JobRecords' => __DIR__ . '/../..' . '/classes/ATE/JobRecords.php',
'WPML\\TM\\ATE\\Log\\Entry' => __DIR__ . '/../..' . '/classes/ATE/Log/Entry.php',
'WPML\\TM\\ATE\\Log\\ErrorEvents' => __DIR__ . '/../..' . '/classes/ATE/Log/ErrorEvents.php',
'WPML\\TM\\ATE\\Log\\Hooks' => __DIR__ . '/../..' . '/classes/ATE/Log/Hooks.php',
'WPML\\TM\\ATE\\Log\\Storage' => __DIR__ . '/../..' . '/classes/ATE/Log/Storage.php',
'WPML\\TM\\ATE\\Log\\View' => __DIR__ . '/../..' . '/classes/ATE/Log/View.php',
'WPML\\TM\\ATE\\Log\\ViewFactory' => __DIR__ . '/../..' . '/classes/ATE/Log/ViewFactory.php',
'WPML\\TM\\ATE\\REST\\Download' => __DIR__ . '/../..' . '/classes/ATE/REST/Download.php',
'WPML\\TM\\ATE\\REST\\Sync' => __DIR__ . '/../..' . '/classes/ATE/REST/Sync.php',
'WPML\\TM\\ATE\\ReturnedJobsQueue' => __DIR__ . '/../..' . '/classes/ATE/ReturnedJobsQueue.php',
'WPML\\TM\\ATE\\Sync\\Arguments' => __DIR__ . '/../..' . '/classes/ATE/Sync/Arguments.php',
'WPML\\TM\\ATE\\Sync\\Factory' => __DIR__ . '/../..' . '/classes/ATE/Sync/Factory.php',
'WPML\\TM\\ATE\\Sync\\Process' => __DIR__ . '/../..' . '/classes/ATE/Sync/Process.php',
'WPML\\TM\\ATE\\Sync\\Result' => __DIR__ . '/../..' . '/classes/ATE/Sync/Result.php',
'WPML\\TM\\ATE\\Sync\\Trigger' => __DIR__ . '/../..' . '/classes/ATE/Sync/Trigger.php',
'WPML\\TM\\AdminBar\\Hooks' => __DIR__ . '/../..' . '/classes/admin-bar/Hooks.php',
'WPML\\TM\\Container\\Config' => __DIR__ . '/../..' . '/classes/container/class-config.php',
'WPML\\TM\\Editor\\ClassicEditorActions' => __DIR__ . '/../..' . '/classes/editor/ClassicEditorActions.php',
'WPML\\TM\\Geolocalization' => __DIR__ . '/../..' . '/classes/Geolocalization.php',
'WPML\\TM\\Jobs\\ExtraFieldDataInEditor' => __DIR__ . '/../..' . '/classes/translation-jobs/ExtraFieldDataInEditor.php',
'WPML\\TM\\Jobs\\ExtraFieldDataInEditorFactory' => __DIR__ . '/../..' . '/classes/translation-jobs/ExtraFieldDataInEditorFactory.php',
'WPML\\TM\\Jobs\\FieldId' => __DIR__ . '/../..' . '/classes/translation-jobs/FieldId.php',
'WPML\\TM\\Jobs\\Query\\AbstractQuery' => __DIR__ . '/../..' . '/classes/jobs/query/AbstractQuery.php',
'WPML\\TM\\Jobs\\Query\\CompositeQuery' => __DIR__ . '/../..' . '/classes/jobs/query/CompositeQuery.php',
'WPML\\TM\\Jobs\\Query\\LimitQueryHelper' => __DIR__ . '/../..' . '/classes/jobs/query/LimitQueryHelper.php',
'WPML\\TM\\Jobs\\Query\\OrderQueryHelper' => __DIR__ . '/../..' . '/classes/jobs/query/OrderQueryHelper.php',
'WPML\\TM\\Jobs\\Query\\PackageQuery' => __DIR__ . '/../..' . '/classes/jobs/query/PackageQuery.php',
'WPML\\TM\\Jobs\\Query\\PostQuery' => __DIR__ . '/../..' . '/classes/jobs/query/PostQuery.php',
'WPML\\TM\\Jobs\\Query\\Query' => __DIR__ . '/../..' . '/classes/jobs/query/Query.php',
'WPML\\TM\\Jobs\\Query\\QueryBuilder' => __DIR__ . '/../..' . '/classes/jobs/query/QueryBuilder.php',
'WPML\\TM\\Jobs\\Query\\StringQuery' => __DIR__ . '/../..' . '/classes/jobs/query/StringQuery.php',
'WPML\\TM\\Jobs\\Query\\StringsBatchQuery' => __DIR__ . '/../..' . '/classes/jobs/query/StringsBatchQuery.php',
'WPML\\TM\\Jobs\\TermMeta' => __DIR__ . '/../..' . '/classes/translation-jobs/TermMeta.php',
'WPML\\TM\\Jobs\\Utils' => __DIR__ . '/../..' . '/classes/translation-jobs/Utils.php',
'WPML\\TM\\Jobs\\Utils\\ElementLink' => __DIR__ . '/../..' . '/classes/jobs/utils/ElementLink.php',
'WPML\\TM\\Jobs\\Utils\\ElementLinkFactory' => __DIR__ . '/../..' . '/classes/jobs/utils/ElementLinkFactory.php',
'WPML\\TM\\Menu\\Dashboard\\PostJobsRepository' => __DIR__ . '/../..' . '/classes/menu/dashboard/PostJobsRepository.php',
'WPML\\TM\\Menu\\TranslationBasket\\Strings' => __DIR__ . '/../..' . '/classes/menu/translation-basket/Strings.php',
'WPML\\TM\\Menu\\TranslationBasket\\Utility' => __DIR__ . '/../..' . '/classes/menu/translation-basket/Utility.php',
'WPML\\TM\\Menu\\TranslationQueue\\CloneJobs' => __DIR__ . '/../..' . '/classes/menu/translation-queue/CloneJobs.php',
'WPML\\TM\\Menu\\TranslationRoles\\RoleValidator' => __DIR__ . '/../..' . '/classes/menu/translation-roles/RoleValidator.php',
'WPML\\TM\\Menu\\TranslationServices\\ActivationAjax' => __DIR__ . '/../..' . '/classes/menu/translation-services/ActivationAjax.php',
'WPML\\TM\\Menu\\TranslationServices\\ActivationAjaxFactory' => __DIR__ . '/../..' . '/classes/menu/translation-services/ActivationAjaxFactory.php',
'WPML\\TM\\Menu\\TranslationServices\\ActiveServiceRepository' => __DIR__ . '/../..' . '/classes/menu/translation-services/ActiveServiceRepository.php',
'WPML\\TM\\Menu\\TranslationServices\\ActiveServiceTemplate' => __DIR__ . '/../..' . '/classes/menu/translation-services/ActiveServiceTemplate.php',
'WPML\\TM\\Menu\\TranslationServices\\ActiveServiceTemplateFactory' => __DIR__ . '/../..' . '/classes/menu/translation-services/ActiveServiceTemplateFactory.php',
'WPML\\TM\\Menu\\TranslationServices\\AuthenticationAjax' => __DIR__ . '/../..' . '/classes/menu/translation-services/AuthenticationAjax.php',
'WPML\\TM\\Menu\\TranslationServices\\AuthenticationAjaxFactory' => __DIR__ . '/../..' . '/classes/menu/translation-services/AuthenticationAjaxFactory.php',
'WPML\\TM\\Menu\\TranslationServices\\MainLayoutTemplate' => __DIR__ . '/../..' . '/classes/menu/translation-services/MainLayoutTemplate.php',
'WPML\\TM\\Menu\\TranslationServices\\NoSiteKeyTemplate' => __DIR__ . '/../..' . '/classes/menu/translation-services/NoSiteKeyTemplate.php',
'WPML\\TM\\Menu\\TranslationServices\\Resources' => __DIR__ . '/../..' . '/classes/menu/translation-services/Resources.php',
'WPML\\TM\\Menu\\TranslationServices\\ResourcesFactory' => __DIR__ . '/../..' . '/classes/menu/translation-services/ResourcesFactory.php',
'WPML\\TM\\Menu\\TranslationServices\\Section' => __DIR__ . '/../..' . '/classes/menu/translation-services/Section.php',
'WPML\\TM\\Menu\\TranslationServices\\SectionFactory' => __DIR__ . '/../..' . '/classes/menu/translation-services/SectionFactory.php',
'WPML\\TM\\Menu\\TranslationServices\\ServiceMapper' => __DIR__ . '/../..' . '/classes/menu/translation-services/ServiceMapper.php',
'WPML\\TM\\Menu\\TranslationServices\\ServicesRetriever' => __DIR__ . '/../..' . '/classes/menu/translation-services/ServicesRetriever.php',
'WPML\\TM\\Menu\\TranslationServices\\Troubleshooting\\RefreshServices' => __DIR__ . '/../..' . '/classes/menu/translation-services/troubleshooting/RefreshServices.php',
'WPML\\TM\\Menu\\TranslationServices\\Troubleshooting\\RefreshServicesFactory' => __DIR__ . '/../..' . '/classes/menu/translation-services/troubleshooting/RefreshServicesFactory.php',
'WPML\\TM\\Notices\\AteLockNotice' => __DIR__ . '/../..' . '/classes/notices/AteLockNotice.php',
'WPML\\TM\\REST\\Base' => __DIR__ . '/../..' . '/classes/API/REST/Base.php',
'WPML\\TM\\REST\\FactoryLoader' => __DIR__ . '/../..' . '/classes/API/REST/FactoryLoader.php',
'WPML\\TM\\Settings\\Repository' => __DIR__ . '/../..' . '/classes/settings/Repository.php',
'WPML\\TM\\Templates\\Notices\\AteLocked' => __DIR__ . '/../..' . '/templates/notices/AteLocked.php',
'WPML\\TM\\TranslationProxy\\Services\\Authorization' => __DIR__ . '/../..' . '/classes/translation-proxy/services/Authorization.php',
'WPML\\TM\\TranslationProxy\\Services\\AuthorizationFactory' => __DIR__ . '/../..' . '/classes/translation-proxy/services/AuthorizationFactory.php',
'WPML\\TM\\TranslationProxy\\Services\\Project\\Manager' => __DIR__ . '/../..' . '/classes/translation-proxy/services/Project/Manager.php',
'WPML\\TM\\TranslationProxy\\Services\\Project\\Project' => __DIR__ . '/../..' . '/classes/translation-proxy/services/Project/Project.php',
'WPML\\TM\\TranslationProxy\\Services\\Project\\SiteDetails' => __DIR__ . '/../..' . '/classes/translation-proxy/services/Project/SiteDetails.php',
'WPML\\TM\\TranslationProxy\\Services\\Project\\Storage' => __DIR__ . '/../..' . '/classes/translation-proxy/services/Project/Storage.php',
'WPML\\TM\\TranslationProxy\\Services\\Storage' => __DIR__ . '/../..' . '/classes/translation-proxy/services/Storage.php',
'WPML\\TM\\Troubleshooting\\SynchronizeSourceIdOfATEJobs\\TriggerSynchronization' => __DIR__ . '/../..' . '/classes/troubleshooting/SynchronizeSourceIdOfATEJobs/TriggerSynchronization.php',
'WPML\\TM\\Upgrade\\Commands\\CreateAteDownloadQueueTable' => __DIR__ . '/../..' . '/classes/upgrade/commands/CreateAteDownloadQueueTable.php',
'WPML\\TM\\Upgrade\\Commands\\MigrateAteRepository' => __DIR__ . '/../..' . '/classes/upgrade/commands/MigrateAteRepository.php',
'WPML\\TM\\Upgrade\\Commands\\RefreshTranslationServices' => __DIR__ . '/../..' . '/classes/upgrade/commands/RefreshTranslationServices.php',
'WPML\\TM\\Upgrade\\Commands\\SynchronizeSourceIdOfATEJobs\\Command' => __DIR__ . '/../..' . '/classes/upgrade/commands/SynchronizeSourceIdOfATEJobs/Command.php',
'WPML\\TM\\Upgrade\\Commands\\SynchronizeSourceIdOfATEJobs\\CommandFactory' => __DIR__ . '/../..' . '/classes/upgrade/commands/SynchronizeSourceIdOfATEJobs/CommandFactory.php',
'WPML\\TM\\Upgrade\\Commands\\SynchronizeSourceIdOfATEJobs\\Repository' => __DIR__ . '/../..' . '/classes/upgrade/commands/SynchronizeSourceIdOfATEJobs/Repository.php',
'WPML\\TM\\User\\Hooks' => __DIR__ . '/../..' . '/classes/user/Hooks.php',
'WPML\\TranslateLinkTargets\\Hooks' => __DIR__ . '/../..' . '/classes/translate_link_targets/Hooks.php',
'WPML_Abstract_Job_Collection' => __DIR__ . '/../..' . '/inc/translation-jobs/collections/class-wpml-abstract-job-collection.php',
'WPML_Ajax_Update_Link_Targets_In_Content' => __DIR__ . '/../..' . '/classes/translate_link_targets/class-wpml-ajax-update-link-targets-in-content.php',
'WPML_Ajax_Update_Link_Targets_In_Posts' => __DIR__ . '/../..' . '/classes/translate_link_targets/class-wpml-ajax-update-link-targets-in-posts.php',
'WPML_Ajax_Update_Link_Targets_In_Strings' => __DIR__ . '/../..' . '/classes/translate_link_targets/class-wpml-ajax-update-link-targets-in-strings.php',
'WPML_All_Language_Pairs' => __DIR__ . '/../..' . '/classes/language/class-wpml-all-language-pairs.php',
'WPML_All_Translation_Jobs_Migration_Notice' => __DIR__ . '/../..' . '/classes/notices/translation-jobs-migration/class-wpml-all-translation-jobs-migration-notice.php',
'WPML_Basket_Tab_Ajax' => __DIR__ . '/../..' . '/classes/menu/translation-basket/wpml-basket-tab-ajax.class.php',
'WPML_Cache_Directory' => __DIR__ . '/..' . '/wpml-shared/wpml-lib-cache/src/cache/class-wpml-cache-directory.php',
'WPML_Core_Version_Check' => __DIR__ . '/..' . '/wpml-shared/wpml-lib-dependencies/src/dependencies/class-wpml-core-version-check.php',
'WPML_Custom_Field_Editor_Settings' => __DIR__ . '/../..' . '/classes/menu/translation-editor/class-wpml-custom-field-editor-settings.php',
'WPML_Dashboard_Ajax' => __DIR__ . '/../..' . '/menu/dashboard/wpml-tm-dashboard-ajax.class.php',
'WPML_Dependencies' => __DIR__ . '/..' . '/wpml-shared/wpml-lib-dependencies/src/dependencies/class-wpml-dependencies.php',
'WPML_Editor_UI_Field' => __DIR__ . '/../..' . '/classes/menu/translation-editor/fields/model/class-wpml-editor-ui-field.php',
'WPML_Editor_UI_Field_Group' => __DIR__ . '/../..' . '/classes/menu/translation-editor/fields/model/class-wpml-editor-ui-field-group.php',
'WPML_Editor_UI_Field_Image' => __DIR__ . '/../..' . '/classes/menu/translation-editor/fields/model/class-wpml-editor-ui-field-image.php',
'WPML_Editor_UI_Field_Section' => __DIR__ . '/../..' . '/classes/menu/translation-editor/fields/model/class-wpml-editor-ui-field-section.php',
'WPML_Editor_UI_Fields' => __DIR__ . '/../..' . '/classes/menu/translation-editor/fields/model/class-wpml-editor-ui-fields.php',
'WPML_Editor_UI_Job' => __DIR__ . '/../..' . '/classes/menu/translation-editor/class-wpml-editor-ui-job.php',
'WPML_Editor_UI_Single_Line_Field' => __DIR__ . '/../..' . '/classes/menu/translation-editor/fields/model/class-wpml-editor-ui-single-line-field.php',
'WPML_Editor_UI_TextArea_Field' => __DIR__ . '/../..' . '/classes/menu/translation-editor/fields/model/class-wpml-editor-ui-textarea-field.php',
'WPML_Editor_UI_WYSIWYG_Field' => __DIR__ . '/../..' . '/classes/menu/translation-editor/fields/model/class-wpml-editor-ui-wysiwyg-field.php',
'WPML_Element_Translation_Job' => __DIR__ . '/../..' . '/inc/translation-jobs/jobs/wpml-element-translation-job.class.php',
'WPML_Element_Translation_Package' => __DIR__ . '/../..' . '/classes/translation-jobs/class-wpml-element-translation-package.php',
'WPML_External_Translation_Job' => __DIR__ . '/../..' . '/inc/translation-jobs/jobs/wpml-external-translation-job.class.php',
'WPML_Language_Pair_Records' => __DIR__ . '/../..' . '/classes/language/class-wpml-language-pair-records.php',
'WPML_Links_Fixed_Status' => __DIR__ . '/../..' . '/classes/translate_link_targets/class-wpml-links-fixed-status.php',
'WPML_Links_Fixed_Status_Factory' => __DIR__ . '/../..' . '/classes/translate_link_targets/class-wpml-links-fixed-status-factory.php',
'WPML_Links_Fixed_Status_For_Posts' => __DIR__ . '/../..' . '/classes/translate_link_targets/class-wpml-links-fixed-status-for-posts.php',
'WPML_Links_Fixed_Status_For_Strings' => __DIR__ . '/../..' . '/classes/translate_link_targets/class-wpml-links-fixed-status-for-strings.php',
'WPML_Manage_Translations_Role' => __DIR__ . '/../..' . '/classes/roles/class-wpml-manage-translations-role.php',
'WPML_PHP_Version_Check' => __DIR__ . '/..' . '/wpml-shared/wpml-lib-dependencies/src/dependencies/class-wpml-php-version-check.php',
'WPML_Post_Translation_Job' => __DIR__ . '/../..' . '/inc/translation-jobs/jobs/wpml-post-translation-job.class.php',
'WPML_Pro_Translation' => __DIR__ . '/../..' . '/inc/translation-proxy/wpml-pro-translation.class.php',
'WPML_Remote_String_Translation' => __DIR__ . '/../..' . '/classes/wpml-st/class-wpml-remote-string-translation.php',
'WPML_Save_Translation_Data_Action' => __DIR__ . '/../..' . '/inc/translation-jobs/helpers/wpml-save-translation-data-action.class.php',
'WPML_String_Translation_Job' => __DIR__ . '/../..' . '/inc/translation-jobs/jobs/wpml-string-translation-job.class.php',
'WPML_TF_TP_Ratings_Synchronize' => __DIR__ . '/../..' . '/classes/translation-feedback/cron/actions/wpml-tf-tp-ratings-synchronize.php',
'WPML_TF_TP_Ratings_Synchronize_Factory' => __DIR__ . '/../..' . '/classes/translation-feedback/factories/wpml-tf-tp-ratings-synchronize-factory.php',
'WPML_TF_Translation_Queue_Hooks' => __DIR__ . '/../..' . '/classes/translation-feedback/hooks/wpml-tf-translation-queue-hooks.php',
'WPML_TF_Translation_Queue_Hooks_Factory' => __DIR__ . '/../..' . '/classes/translation-feedback/factories/action-loaders/wpml-tf-translation-queue-hooks-factory.php',
'WPML_TF_Translation_Service_Change_Hooks' => __DIR__ . '/../..' . '/classes/translation-feedback/hooks/wpml-tf-translation-service-change-hooks.php',
'WPML_TF_Translation_Service_Change_Hooks_Factory' => __DIR__ . '/../..' . '/classes/translation-feedback/factories/action-loaders/wpml-tf-translation-service-change-hooks-factory.php',
'WPML_TF_WP_Cron_Events' => __DIR__ . '/../..' . '/classes/translation-feedback/cron/wpml-tf-wp-cron-events.php',
'WPML_TF_WP_Cron_Events_Factory' => __DIR__ . '/../..' . '/classes/translation-feedback/factories/action-loaders/wpml-tf-wp-cron-event-factory.php',
'WPML_TF_XML_RPC_Feedback_Update' => __DIR__ . '/../..' . '/classes/translation-feedback/xml-rpc/wpml-tf-xml-rpc-feedback-update.php',
'WPML_TF_XML_RPC_Feedback_Update_Factory' => __DIR__ . '/../..' . '/classes/translation-feedback/factories/wpml-tf-xml-rpc-feedback-update-factory.php',
'WPML_TF_XML_RPC_Hooks' => __DIR__ . '/../..' . '/classes/translation-feedback/hooks/wpml-tf-xml-rpc-hooks.php',
'WPML_TF_XML_RPC_Hooks_Factory' => __DIR__ . '/../..' . '/classes/translation-feedback/factories/action-loaders/wpml-tf-xml-rpc-hooks-factory.php',
'WPML_TM_AJAX' => __DIR__ . '/../..' . '/classes/AJAX/class-wpml-tm-ajax.php',
'WPML_TM_AJAX_Factory_Obsolete' => __DIR__ . '/../..' . '/classes/class-wpml-tm-ajax-factory.php',
'WPML_TM_AMS_API' => __DIR__ . '/../..' . '/classes/ATE/API/class-wpml-tm-ams-api.php',
'WPML_TM_AMS_ATE_Console_Section' => __DIR__ . '/../..' . '/classes/menu/ams-ate-console/class-wpml-tm-ams-ate-console-section.php',
'WPML_TM_AMS_ATE_Console_Section_Factory' => __DIR__ . '/../..' . '/classes/menu/ams-ate-console/class-wpml-tm-ams-ate-console-section-factory.php',
'WPML_TM_AMS_ATE_Factories' => __DIR__ . '/../..' . '/classes/ATE/class-wpml-tm-ams-ate-factories.php',
'WPML_TM_AMS_Check_Website_ID' => __DIR__ . '/../..' . '/classes/ATE/Hooks/class-wpml-tm-ams-check-website-id.php',
'WPML_TM_AMS_Check_Website_ID_Factory' => __DIR__ . '/../..' . '/classes/ATE/Hooks/class-wpml-tm-ams-check-website-id-factory.php',
'WPML_TM_AMS_Synchronize_Actions' => __DIR__ . '/../..' . '/classes/ATE/Hooks/class-wpml-tm-ams-synchronize-actions.php',
'WPML_TM_AMS_Synchronize_Actions_Factory' => __DIR__ . '/../..' . '/classes/ATE/Hooks/class-wpml-tm-ams-synchronize-actions-factory.php',
'WPML_TM_AMS_Synchronize_Users_On_Access_Denied' => __DIR__ . '/../..' . '/classes/ATE/Hooks/class-wpml-tm-ams-synchronize-users-on-access-denied.php',
'WPML_TM_AMS_Synchronize_Users_On_Access_Denied_Factory' => __DIR__ . '/../..' . '/classes/ATE/Hooks/class-wpml-tm-ams-synchronize-users-on-access-denied-factory.php',
'WPML_TM_AMS_Translator_Activation_Records' => __DIR__ . '/../..' . '/classes/ATE/class-wpml-tm-ams-translator-activation-records.php',
'WPML_TM_AMS_User_Sync' => __DIR__ . '/../..' . '/classes/ATE/class-wpml-tm-ams-user-sync.php',
'WPML_TM_AMS_Users' => __DIR__ . '/../..' . '/classes/ATE/class-wpml-tm-ams-users.php',
'WPML_TM_API' => __DIR__ . '/../..' . '/classes/class-wpml-tm-api.php',
'WPML_TM_API_Hook_Links' => __DIR__ . '/../..' . '/classes/API/Hooks/class-wpml-tm-api-hook-links.php',
'WPML_TM_API_Hooks_Factory' => __DIR__ . '/../..' . '/classes/API/Hooks/class-wpml-tm-api-hooks-factory.php',
'WPML_TM_ATE' => __DIR__ . '/../..' . '/classes/ATE/class-wpml-tm-ate.php',
'WPML_TM_ATE_AMS_Endpoints' => __DIR__ . '/../..' . '/classes/ATE/class-wpml-tm-ate-ams-endpoints.php',
'WPML_TM_ATE_API' => __DIR__ . '/../..' . '/classes/ATE/API/class-wpml-tm-ate-api.php',
'WPML_TM_ATE_API_Error' => __DIR__ . '/../..' . '/classes/ATE/Hooks/class-wpml-tm-ate-api-error.php',
'WPML_TM_ATE_Authentication' => __DIR__ . '/../..' . '/classes/ATE/API/class-wpml-tm-ate-authentication.php',
'WPML_TM_ATE_Job' => __DIR__ . '/../..' . '/classes/ATE/class-wpml-tm-ate-job.php',
'WPML_TM_ATE_Job_Data_Fallback' => __DIR__ . '/../..' . '/classes/ATE/Hooks/class-wpml-tm-ate-job-data-fallback-action.php',
'WPML_TM_ATE_Job_Data_Fallback_Factory' => __DIR__ . '/../..' . '/classes/ATE/Hooks/class-wpml-tm-ate-job-data-fallback-action-factory.php',
'WPML_TM_ATE_Job_Repository' => __DIR__ . '/../..' . '/classes/ATE/models/class-wpml-tm-ate-job-repository.php',
'WPML_TM_ATE_Jobs' => __DIR__ . '/../..' . '/classes/ATE/class-wpml-tm-ate-jobs.php',
'WPML_TM_ATE_Jobs_Actions' => __DIR__ . '/../..' . '/classes/ATE/Hooks/class-wpml-tm-ate-jobs-actions.php',
'WPML_TM_ATE_Jobs_Actions_Factory' => __DIR__ . '/../..' . '/classes/ATE/Hooks/class-wpml-tm-ate-jobs-actions-factory.php',
'WPML_TM_ATE_Jobs_Store_Actions' => __DIR__ . '/../..' . '/classes/ATE/Hooks/class-wpml-tm-ate-jobs-store-actions.php',
'WPML_TM_ATE_Jobs_Store_Actions_Factory' => __DIR__ . '/../..' . '/classes/ATE/Hooks/class-wpml-tm-ate-jobs-store-actions-factory.php',
'WPML_TM_ATE_Jobs_Sync_Script_Loader' => __DIR__ . '/../..' . '/classes/ATE/Hooks/class-wpml-tm-ate-jobs-sync-script-loader.php',
'WPML_TM_ATE_Models_Job_Create' => __DIR__ . '/../..' . '/classes/ATE/models/class-wpml-tm-ate-models-job-create.php',
'WPML_TM_ATE_Models_Job_File' => __DIR__ . '/../..' . '/classes/ATE/models/class-wpml-tm-ate-models-job-file.php',
'WPML_TM_ATE_Models_Language' => __DIR__ . '/../..' . '/classes/ATE/models/class-wpml-tm-ate-models-language.php',
'WPML_TM_ATE_Post_Edit_Actions' => __DIR__ . '/../..' . '/classes/ATE/Hooks/class-wpml-tm-ate-post-edit-actions.php',
'WPML_TM_ATE_Post_Edit_Actions_Factory' => __DIR__ . '/../..' . '/classes/ATE/Hooks/class-wpml-tm-ate-post-edit-actions-factory.php',
'WPML_TM_ATE_Request_Activation_Email' => __DIR__ . '/../..' . '/classes/emails/ATE/class-wpml-tm-ate-request-activation-email.php',
'WPML_TM_ATE_Required_Actions_Base' => __DIR__ . '/../..' . '/classes/ATE/Hooks/class-wpml-tm-ate-required-actions-base.php',
'WPML_TM_ATE_Required_Rest_Base' => __DIR__ . '/../..' . '/classes/ATE/REST/class-wpml-tm-ate-required-rest-base.php',
'WPML_TM_ATE_Status' => __DIR__ . '/../..' . '/classes/ATE/class-wpml-tm-ate-status.php',
'WPML_TM_ATE_Translator_Login' => __DIR__ . '/../..' . '/classes/ATE/Hooks/class-wpml-tm-ate-translator-login.php',
'WPML_TM_ATE_Translator_Login_Factory' => __DIR__ . '/../..' . '/classes/ATE/Hooks/class-wpml-tm-ate-translator-login-factory.php',
'WPML_TM_ATE_Translator_Message_Classic_Editor' => __DIR__ . '/../..' . '/classes/ATE/Hooks/class-wpml-tm-ate-translator-message-classic-editor.php',
'WPML_TM_ATE_Translator_Message_Classic_Editor_Factory' => __DIR__ . '/../..' . '/classes/ATE/Hooks/class-wpml-tm-ate-translator-message-classic-editor-factory.php',
'WPML_TM_Action_Helper' => __DIR__ . '/../..' . '/inc/actions/wpml-tm-action-helper.class.php',
'WPML_TM_Add_TP_ID_Column_To_Translation_Status' => __DIR__ . '/../..' . '/classes/upgrade/commands/class-wpml-tm-add-tpid-column-to-translation-status.php',
'WPML_TM_Add_TP_Revision_And_TS_Status_Columns_To_Core_Status' => __DIR__ . '/../..' . '/classes/upgrade/commands/class-wpml-tm-add-tp-revision-and-ts-status-columns-to-core-status.php',
'WPML_TM_Add_TP_Revision_And_TS_Status_Columns_To_Translation_Status' => __DIR__ . '/../..' . '/classes/upgrade/commands/class-wpml-tm-add-tp-revision-and-ts-status-columns-to-translation-status.php',
'WPML_TM_Admin_Menus_Factory' => __DIR__ . '/../..' . '/classes/menu/wpml-tm-admin-menus-factory.php',
'WPML_TM_Admin_Menus_Hooks' => __DIR__ . '/../..' . '/classes/menu/wpml-tm-admin-menus-hooks.php',
'WPML_TM_Admin_Sections' => __DIR__ . '/../..' . '/classes/menu/class-wpml-tm-admin-sections.php',
'WPML_TM_Ajax_Factory' => __DIR__ . '/../..' . '/classes/class-wpml-tm-ajax-factory-2.php',
'WPML_TM_All_Admins_To_Translation_Managers' => __DIR__ . '/../..' . '/classes/user/class-wpml-all-admins-to-translation-managers.php',
'WPML_TM_Array_Search' => __DIR__ . '/../..' . '/classes/utils/class-wpml-array-search.php',
'WPML_TM_Batch_Report' => __DIR__ . '/../..' . '/classes/emails/report/class-wpml-tm-batch-report.php',
'WPML_TM_Batch_Report_Email_Builder' => __DIR__ . '/../..' . '/classes/emails/report/class-wpml-tm-batch-report-email-builder.php',
'WPML_TM_Batch_Report_Email_Process' => __DIR__ . '/../..' . '/classes/emails/report/class-wpml-tm-batch-report-email-process.php',
'WPML_TM_Batch_Report_Hooks' => __DIR__ . '/../..' . '/classes/emails/report/class-wpml-tm-batch-report-hooks.php',
'WPML_TM_Blog_Translators' => __DIR__ . '/../..' . '/inc/local-translation/wpml-tm-blog-translators.class.php',
'WPML_TM_CMS_ID' => __DIR__ . '/../..' . '/classes/translation-proxy/class-wpml-tm-cms-id.php',
'WPML_TM_Count' => __DIR__ . '/../..' . '/classes/words-count/count/wpml-tm-count.php',
'WPML_TM_Count_Composite' => __DIR__ . '/../..' . '/classes/words-count/count/wpml-tm-count-composite.php',
'WPML_TM_Custom_XML_AJAX' => __DIR__ . '/../..' . '/classes/menu/custom-xml-config/class-wpml-tm-custom-xml-ajax.php',
'WPML_TM_Custom_XML_Factory' => __DIR__ . '/../..' . '/classes/menu/custom-xml-config/class-wpml-tm-custom-xml-factory.php',
'WPML_TM_Custom_XML_UI' => __DIR__ . '/../..' . '/classes/menu/custom-xml-config/class-wpml-tm-custom-xml-ui.php',
'WPML_TM_Custom_XML_UI_Hooks' => __DIR__ . '/../..' . '/classes/menu/custom-xml-config/class-wpml-tm-custom-xml-ui-hooks.php',
'WPML_TM_Custom_XML_UI_Resources' => __DIR__ . '/../..' . '/classes/menu/custom-xml-config/class-wpml-tm-custom-xml-ui-resources.php',
'WPML_TM_Dashboard' => __DIR__ . '/../..' . '/menu/dashboard/wpml-tm-dashboard.class.php',
'WPML_TM_Dashboard_Display_Filter' => __DIR__ . '/../..' . '/classes/menu/dashboard/class-wpml-tm-dashboard-display-filter.php',
'WPML_TM_Dashboard_Document_Row' => __DIR__ . '/../..' . '/classes/menu/dashboard/class-wpml-tm-dashboard-document-row.php',
'WPML_TM_Dashboard_Pagination' => __DIR__ . '/../..' . '/classes/menu/dashboard/class-wpml-tm-dashboard-pagination.php',
'WPML_TM_Default_Settings' => __DIR__ . '/../..' . '/classes/settings/wpml-tm-default-settings.php',
'WPML_TM_Default_Settings_Factory' => __DIR__ . '/../..' . '/classes/settings/wpml-tm-default-settings-factory.php',
'WPML_TM_Disable_Notices_In_Wizard' => __DIR__ . '/../..' . '/classes/notices/class-wpml-tm-disable-notices-in-wizard.php',
'WPML_TM_Disable_Notices_In_Wizard_Factory' => __DIR__ . '/../..' . '/classes/notices/class-wpml-tm-disable-notices-in-wizard-factory.php',
'WPML_TM_Editor_Job_Save' => __DIR__ . '/../..' . '/classes/menu/translation-editor/class-wpml-tm-editor-job-save.php',
'WPML_TM_Editor_Save_Ajax_Action' => __DIR__ . '/../..' . '/classes/menu/translation-editor/class-wpml-tm-editor-save-ajax-action.php',
'WPML_TM_Editors' => __DIR__ . '/../..' . '/classes/editor/class-wpml-tm-editors.php',
'WPML_TM_Element_Translations' => __DIR__ . '/../..' . '/inc/core/wpml-tm-element-translations.class.php',
'WPML_TM_Email_Jobs_Summary_View' => __DIR__ . '/../..' . '/classes/emails/report/class-wpml-tm-email-jobs-summary-view.php',
'WPML_TM_Email_Notification_View' => __DIR__ . '/../..' . '/classes/emails/notification/wpml-tm-email-notification-view.php',
'WPML_TM_Email_Twig_Template_Factory' => __DIR__ . '/../..' . '/classes/emails/wpml-tm-email-twig-template-factory.php',
'WPML_TM_Email_View' => __DIR__ . '/../..' . '/classes/emails/wpml-tm-email-view.php',
'WPML_TM_Emails_Settings' => __DIR__ . '/../..' . '/classes/menu/translation-notifications/class-wpml-tm-emails-settings.php',
'WPML_TM_Emails_Settings_Factory' => __DIR__ . '/../..' . '/classes/menu/translation-notifications/class-wpml-tm-emails-settings-factory.php',
'WPML_TM_Field_Content_Action' => __DIR__ . '/../..' . '/classes/translation-jobs/class-wpml-tm-field-content-action.php',
'WPML_TM_Field_Type_Encoding' => __DIR__ . '/../..' . '/classes/translation-jobs/class-wpml-tm-field-type-encoding.php',
'WPML_TM_Field_Type_Sanitizer' => __DIR__ . '/../..' . '/classes/menu/translation-editor/class-wpml-tm-field-type-sanitizer.php',
'WPML_TM_General_Xliff_Import' => __DIR__ . '/../..' . '/classes/xliff/class-wpml-tm-general-xliff-import.php',
'WPML_TM_General_Xliff_Reader' => __DIR__ . '/../..' . '/classes/xliff/class-wpml-tm-general-xliff-reader.php',
'WPML_TM_ICL20MigrationException' => __DIR__ . '/../..' . '/classes/ICL-20-migration/class-wpml-tm-icl20-migration-exception.php',
'WPML_TM_ICL20_Acknowledge' => __DIR__ . '/../..' . '/classes/ICL-20-migration/remote/class-wpml-tm-icl20-acknowledge.php',
'WPML_TM_ICL20_Migrate' => __DIR__ . '/../..' . '/classes/ICL-20-migration/class-wpml-tm-icl20-migrate.php',
'WPML_TM_ICL20_Migrate_Local' => __DIR__ . '/../..' . '/classes/ICL-20-migration/class-wpml-tm-icl20-migrate-local.php',
'WPML_TM_ICL20_Migrate_Remote' => __DIR__ . '/../..' . '/classes/ICL-20-migration/class-wpml-tm-icl20-migrate-remote.php',
'WPML_TM_ICL20_Migration_AJAX' => __DIR__ . '/../..' . '/classes/ICL-20-migration/class-wpml-tm-icl20-migration-ajax.php',
'WPML_TM_ICL20_Migration_Container' => __DIR__ . '/../..' . '/classes/ICL-20-migration/remote/class-wpml-tm-icl20-migration-container.php',
'WPML_TM_ICL20_Migration_Factory' => __DIR__ . '/../..' . '/classes/ICL-20-migration/class-wpml-tm-icl20-migration-factory.php',
'WPML_TM_ICL20_Migration_Loader' => __DIR__ . '/../..' . '/classes/ICL-20-migration/class-wpml-tm-icl20-migration-loader.php',
'WPML_TM_ICL20_Migration_Locks' => __DIR__ . '/../..' . '/classes/ICL-20-migration/ui/class-wpml-tm-icl20-migration-locks.php',
'WPML_TM_ICL20_Migration_Notices' => __DIR__ . '/../..' . '/classes/ICL-20-migration/ui/class-wpml-tm-icl20-migration-notices.php',
'WPML_TM_ICL20_Migration_Progress' => __DIR__ . '/../..' . '/classes/ICL-20-migration/class-wpml-tm-icl20-migration-progress.php',
'WPML_TM_ICL20_Migration_Status' => __DIR__ . '/../..' . '/classes/ICL-20-migration/class-wpml-tm-icl20-migration-status.php',
'WPML_TM_ICL20_Migration_Support' => __DIR__ . '/../..' . '/classes/ICL-20-migration/ui/class-wpml-tm-icl20-migration-support.php',
'WPML_TM_ICL20_Project' => __DIR__ . '/../..' . '/classes/ICL-20-migration/remote/class-wpml-tm-icl20-project-migration.php',
'WPML_TM_ICL20_Token' => __DIR__ . '/../..' . '/classes/ICL-20-migration/remote/class-wpml-tm-icl20-token.php',
'WPML_TM_ICL_Translate_Job' => __DIR__ . '/../..' . '/classes/records/class-wpml-tm-icl-translate-job.php',
'WPML_TM_ICL_Translation_Status' => __DIR__ . '/../..' . '/classes/records/class-wpml-tm-icl-translation-status.php',
'WPML_TM_ICL_Translations' => __DIR__ . '/../..' . '/classes/records/class-wpml-tm-icl-translations.php',
'WPML_TM_Job_Action' => __DIR__ . '/../..' . '/classes/translation-jobs/class-wpml-tm-job-action.php',
'WPML_TM_Job_Action_Factory' => __DIR__ . '/../..' . '/classes/translation-jobs/class-wpml-tm-job-action-factory.php',
'WPML_TM_Job_Created' => __DIR__ . '/../..' . '/classes/ATE/models/class-wpml-tm-job-created.php',
'WPML_TM_Job_Element_Entity' => __DIR__ . '/../..' . '/classes/jobs/class-wpml-tm-job-element-entity.php',
'WPML_TM_Job_Elements_Repository' => __DIR__ . '/../..' . '/classes/jobs/class-wpml-tm-job-elements-repository.php',
'WPML_TM_Job_Entity' => __DIR__ . '/../..' . '/classes/jobs/class-wpml-tm-job-entity.php',
'WPML_TM_Job_Factory_User' => __DIR__ . '/../..' . '/classes/abstract/class-wpml-tm-job-factory-user.php',
'WPML_TM_Job_Layout' => __DIR__ . '/../..' . '/classes/translation-jobs/class-wpml-tm-job-layout.php',
'WPML_TM_Job_TS_Status' => __DIR__ . '/../..' . '/classes/jobs/class-wpml-tm-job-ts-status.php',
'WPML_TM_Jobs_Batch' => __DIR__ . '/../..' . '/classes/jobs/class-wpml-tm-jobs-batch.php',
'WPML_TM_Jobs_Collection' => __DIR__ . '/../..' . '/classes/jobs/class-wpml-tm-jobs-collection.php',
'WPML_TM_Jobs_Daily_Summary_Report_Model' => __DIR__ . '/../..' . '/classes/emails/notification/summary/class-wpml-tm-jobs-daily-summary-report-model.php',
'WPML_TM_Jobs_Date_Range' => __DIR__ . '/../..' . '/classes/jobs/class-wpml-tm-jobs-date-range.php',
'WPML_TM_Jobs_Deadline_Cron_Hooks' => __DIR__ . '/../..' . '/classes/jobs-deadline/wpml-tm-jobs-deadline-cron-hooks.php',
'WPML_TM_Jobs_Deadline_Cron_Hooks_Factory' => __DIR__ . '/../..' . '/classes/jobs-deadline/wpml-tm-jobs-deadline-cron-hooks-factory.php',
'WPML_TM_Jobs_Deadline_Estimate' => __DIR__ . '/../..' . '/classes/jobs-deadline/wpml-tm-jobs-deadline-estimate.php',
'WPML_TM_Jobs_Deadline_Estimate_AJAX_Action' => __DIR__ . '/../..' . '/classes/jobs-deadline/wpml-tm-jobs-deadline-estimate-ajax-action.php',
'WPML_TM_Jobs_Deadline_Estimate_AJAX_Action_Factory' => __DIR__ . '/../..' . '/classes/jobs-deadline/wpml-tm-jobs-deadline-estimate-ajax-action-factory.php',
'WPML_TM_Jobs_Deadline_Estimate_Factory' => __DIR__ . '/../..' . '/classes/jobs-deadline/wpml-tm-jobs-deadline-estimate-factory.php',
'WPML_TM_Jobs_List_Script_Data' => __DIR__ . '/../..' . '/classes/menu/jobs-list/class-wpml-tm-jobs-list-script-data.php',
'WPML_TM_Jobs_List_Services' => __DIR__ . '/../..' . '/classes/menu/jobs-list/class-wpml-tm-jobs-list-services.php',
'WPML_TM_Jobs_List_Status_Names' => __DIR__ . '/../..' . '/classes/menu/jobs-list/class-wpml-tm-jobs-list-status-names.php',
'WPML_TM_Jobs_List_Translated_By_Filters' => __DIR__ . '/../..' . '/classes/menu/jobs-list/class-wpml-tm-jobs-list-translated_by_filters.php',
'WPML_TM_Jobs_List_Translators' => __DIR__ . '/../..' . '/classes/menu/jobs-list/class-wpml-tm-jobs-list-translators.php',
'WPML_TM_Jobs_Migration_State' => __DIR__ . '/../..' . '/classes/notices/translation-jobs-migration/class-wpml-tm-jobs-migration-state.php',
'WPML_TM_Jobs_Needs_Update_Param' => __DIR__ . '/../..' . '/classes/jobs/class-wpml-tm-jobs-needs-update-param.php',
'WPML_TM_Jobs_Repository' => __DIR__ . '/../..' . '/classes/jobs/class-wpml-tm-jobs-repository.php',
'WPML_TM_Jobs_Search_Params' => __DIR__ . '/../..' . '/classes/jobs/class-wpml-tm-jobs-search-params.php',
'WPML_TM_Jobs_Sorting_Param' => __DIR__ . '/../..' . '/classes/jobs/class-wpml-tm-jobs-sorting-param.php',
'WPML_TM_Jobs_Summary' => __DIR__ . '/../..' . '/classes/emails/notification/summary/class-wpml-tm-jobs-summary.php',
'WPML_TM_Jobs_Summary_Report' => __DIR__ . '/../..' . '/classes/emails/notification/summary/class-wpml-tm-jobs-summary-report.php',
'WPML_TM_Jobs_Summary_Report_Hooks' => __DIR__ . '/../..' . '/classes/emails/notification/summary/wpml-tm-jobs-summary-report-hooks.php',
'WPML_TM_Jobs_Summary_Report_Hooks_Factory' => __DIR__ . '/../..' . '/classes/emails/notification/summary/wpml-tm-jobs-summary-report-hooks-factory.php',
'WPML_TM_Jobs_Summary_Report_Model' => __DIR__ . '/../..' . '/classes/emails/notification/summary/interface-wpml-tm-jobs-summary-report-model.php',
'WPML_TM_Jobs_Summary_Report_Process' => __DIR__ . '/../..' . '/classes/emails/notification/summary/class-wpml-tm-jobs-summary-report-process.php',
'WPML_TM_Jobs_Summary_Report_Process_Factory' => __DIR__ . '/../..' . '/classes/emails/notification/summary/class-wpml-tm-jobs-summary-report-process-factory.php',
'WPML_TM_Jobs_Summary_Report_View' => __DIR__ . '/../..' . '/classes/emails/notification/summary/class-wpml-tm-jobs-summary-report-view.php',
'WPML_TM_Jobs_Weekly_Summary_Report_Model' => __DIR__ . '/../..' . '/classes/emails/notification/summary/class-wpml-tm-jobs-weekly-summary-report-model.php',
'WPML_TM_Last_Picked_Up' => __DIR__ . '/../..' . '/classes/menu/tp-polling/wpml-tm-last-picked-up.php',
'WPML_TM_Loader' => __DIR__ . '/../..' . '/classes/class-wpml-tm-loader.php',
'WPML_TM_Log' => __DIR__ . '/../..' . '/classes/translation-proxy/api/class-wpml-tm-log.php',
'WPML_TM_MCS_ATE' => __DIR__ . '/../..' . '/classes/menu/mcsetup/class-wpml-tm-mcs-ate.php',
'WPML_TM_MCS_ATE_Strings' => __DIR__ . '/../..' . '/classes/menu/mcsetup/class-wpml-tm-mcs-ate-strings.php',
'WPML_TM_MCS_Custom_Field_Settings_Menu' => __DIR__ . '/../..' . '/classes/menu/mcsetup/class-wpml-tm-mcs-custom-field-settings-menu.php',
'WPML_TM_MCS_Custom_Field_Settings_Menu_Factory' => __DIR__ . '/../..' . '/classes/menu/mcsetup/class-wpml-tm-mcs-custom-field-settings-menu-factory.php',
'WPML_TM_MCS_Pagination_Ajax' => __DIR__ . '/../..' . '/classes/menu/mcsetup/class-wpml-tm-mcs-pagination-ajax.php',
'WPML_TM_MCS_Pagination_Ajax_Factory' => __DIR__ . '/../..' . '/classes/menu/mcsetup/class-wpml-tm-mcs-pagination-ajax-factory.php',
'WPML_TM_MCS_Pagination_Render' => __DIR__ . '/../..' . '/classes/menu/mcsetup/class-wpml-tm-mcs-pagination-render.php',
'WPML_TM_MCS_Pagination_Render_Factory' => __DIR__ . '/../..' . '/classes/menu/mcsetup/class-wpml-tm-mcs-pagination-render-factory.php',
'WPML_TM_MCS_Post_Custom_Field_Settings_Menu' => __DIR__ . '/../..' . '/classes/menu/mcsetup/class-wpml-tm-mcs-post-custom-field-settings-menu.php',
'WPML_TM_MCS_Search_Factory' => __DIR__ . '/../..' . '/classes/menu/mcsetup/class-wpml-tm-mcs-search-factory.php',
'WPML_TM_MCS_Search_Render' => __DIR__ . '/../..' . '/classes/menu/mcsetup/class-wpml-tm-mcs-search-render.php',
'WPML_TM_MCS_Section_UI' => __DIR__ . '/../..' . '/classes/menu/mcsetup/class-wpml-tm-mcs-section-ui.php',
'WPML_TM_MCS_Term_Custom_Field_Settings_Menu' => __DIR__ . '/../..' . '/classes/menu/mcsetup/class-wpml-tm-mcs-term-custom-field-settings-menu.php',
'WPML_TM_Mail_Notification' => __DIR__ . '/../..' . '/classes/emails/wpml-tm-mail-notification.php',
'WPML_TM_Menus' => __DIR__ . '/../..' . '/menu/wpml-tm-menus.class.php',
'WPML_TM_Menus_Management' => __DIR__ . '/../..' . '/menu/wpml-tm-menus-management.php',
'WPML_TM_Menus_Settings' => __DIR__ . '/../..' . '/menu/wpml-tm-menus-settings.php',
'WPML_TM_Old_Editor' => __DIR__ . '/../..' . '/classes/ATE/Hooks/class-wpml-tm-old-editor.php',
'WPML_TM_Old_Editor_Factory' => __DIR__ . '/../..' . '/classes/ATE/Hooks/class-wpml-tm-old-editor-factory.php',
'WPML_TM_Old_Jobs_Editor' => __DIR__ . '/../..' . '/classes/editor/class-wpml-tm-old-jobs-editor.php',
'WPML_TM_Only_I_Language_Pairs_Factory' => __DIR__ . '/../..' . '/classes/user/class-wpml-only-i-language-pairs-factory.php',
'WPML_TM_Only_I_language_Pairs' => __DIR__ . '/../..' . '/classes/user/class-wpml-only-i-language-pairs.php',
'WPML_TM_Options_Ajax' => __DIR__ . '/../..' . '/classes/menu/mcsetup/class-wpml-tm-options-ajax.php',
'WPML_TM_Overdue_Jobs_Report' => __DIR__ . '/../..' . '/classes/emails/overdue-report/wpml-tm-overdue-jobs-report.php',
'WPML_TM_Overdue_Jobs_Report_Factory' => __DIR__ . '/../..' . '/classes/emails/overdue-report/wpml-tm-overdue-jobs-report-factory.php',
'WPML_TM_Package_Element' => __DIR__ . '/../..' . '/classes/words-count/wpml-tm-package-element.php',
'WPML_TM_Page' => __DIR__ . '/../..' . '/classes/class-wpml-tm-page.php',
'WPML_TM_Parent_Filter_Ajax' => __DIR__ . '/../..' . '/classes/translation-dashboard/class-wpml-tm-parent-filter-ajax.php',
'WPML_TM_Parent_Filter_Ajax_Factory' => __DIR__ . '/../..' . '/classes/translation-dashboard/class-wpml-tm-parent-filter-ajax-factory.php',
'WPML_TM_Pickup_Mode_Ajax' => __DIR__ . '/../..' . '/classes/menu/mcsetup/class-wpml-tm-pickup-mode-ajax.php',
'WPML_TM_Polling_Box' => __DIR__ . '/../..' . '/classes/menu/tp-polling/class-wpml-tm-polling-box.php',
'WPML_TM_Post' => __DIR__ . '/../..' . '/classes/words-count/class-wpml-tm-post.php',
'WPML_TM_Post_Actions' => __DIR__ . '/../..' . '/inc/actions/wpml-tm-post-actions.class.php',
'WPML_TM_Post_Data' => __DIR__ . '/../..' . '/classes/helpers/class-wpml-tm-post-data.php',
'WPML_TM_Post_Edit_Link_Anchor' => __DIR__ . '/../..' . '/classes/menu-elements/class-wpml-tm-post-edit-link-anchor.php',
'WPML_TM_Post_Edit_Notices' => __DIR__ . '/../..' . '/classes/notices/wpml-tm-post-edit-notices.php',
'WPML_TM_Post_Edit_Notices_Factory' => __DIR__ . '/../..' . '/classes/notices/wpml-tm-post-edit-notices-factory.php',
'WPML_TM_Post_Edit_TM_Editor_Mode' => __DIR__ . '/../..' . '/classes/post-edit-screen/class-wpml-tm-post-edit-tm-editor-mode.php',
'WPML_TM_Post_Edit_TM_Editor_Select' => __DIR__ . '/../..' . '/classes/post-edit-screen/class-wpml-tm-post-edit-tm-editor-select.php',
'WPML_TM_Post_Edit_TM_Editor_Select_Factory' => __DIR__ . '/../..' . '/classes/post-edit-screen/class-wpml-tm-post-edit-tm-editor-select-factory.php',
'WPML_TM_Post_Job_Entity' => __DIR__ . '/../..' . '/classes/jobs/class-wpml-tm-post-job-entity.php',
'WPML_TM_Post_Link' => __DIR__ . '/../..' . '/classes/menu-elements/class-wpml-tm-post-link.php',
'WPML_TM_Post_Link_Anchor' => __DIR__ . '/../..' . '/classes/menu-elements/class-wpml-tm-post-link-anchor.php',
'WPML_TM_Post_Link_Factory' => __DIR__ . '/../..' . '/classes/menu-elements/class-wpml-tm-post-link-factory.php',
'WPML_TM_Post_Target_Lang_Filter' => __DIR__ . '/../..' . '/classes/filters/class-wpml-tm-post-target-lang-filter.php',
'WPML_TM_Post_View_Link_Anchor' => __DIR__ . '/../..' . '/classes/menu-elements/class-wpml-tm-post-view-link-anchor.php',
'WPML_TM_Post_View_Link_Title' => __DIR__ . '/../..' . '/classes/menu-elements/class-wpml-tm-post-view-link-title.php',
'WPML_TM_Privacy_Content' => __DIR__ . '/../..' . '/classes/privacy/class-wpml-tm-privacy-content.php',
'WPML_TM_Privacy_Content_Factory' => __DIR__ . '/../..' . '/classes/privacy/class-wpml-tm-privacy-content-factory.php',
'WPML_TM_Promotions' => __DIR__ . '/../..' . '/classes/class-wpml-tm-promotions.php',
'WPML_TM_REST_AMS_Clients' => __DIR__ . '/../..' . '/classes/ATE/REST/class-wpml-tm-rest-ams-clients.php',
'WPML_TM_REST_AMS_Clients_Factory' => __DIR__ . '/../..' . '/classes/ATE/REST/class-wpml-tm-rest-ams-clients-factory.php',
'WPML_TM_REST_ATE_API' => __DIR__ . '/../..' . '/classes/ATE/REST/class-wpml-tm-rest-ate-api.php',
'WPML_TM_REST_ATE_API_Factory' => __DIR__ . '/../..' . '/classes/ATE/REST/class-wpml-tm-rest-ate-api-factory.php',
'WPML_TM_REST_ATE_Jobs' => __DIR__ . '/../..' . '/classes/ATE/REST/class-wpml-tm-rest-ate-jobs.php',
'WPML_TM_REST_ATE_Jobs_Factory' => __DIR__ . '/../..' . '/classes/ATE/REST/class-wpml-tm-rest-ate-jobs-factory.php',
'WPML_TM_REST_ATE_Public' => __DIR__ . '/../..' . '/classes/ATE/REST/class-wpml-tm-rest-ate-public.php',
'WPML_TM_REST_ATE_Public_Factory' => __DIR__ . '/../..' . '/classes/ATE/REST/class-wpml-tm-rest-ate-public-factory.php',
'WPML_TM_REST_ATE_Sync_Jobs' => __DIR__ . '/../..' . '/classes/ATE/REST/class-wpml-tm-rest-ate-sync-jobs.php',
'WPML_TM_REST_ATE_Sync_Jobs_Factory' => __DIR__ . '/../..' . '/classes/ATE/REST/class-wpml-tm-rest-ate-sync-jobs-factory.php',
'WPML_TM_REST_Apply_TP_Translation' => __DIR__ . '/../..' . '/classes/API/REST/class-wpml-tm-rest-apply-tp-translation.php',
'WPML_TM_REST_Apply_TP_Translation_Factory' => __DIR__ . '/../..' . '/classes/API/REST/class-wpml-tm-rest-apply-tp-translation-factory.php',
'WPML_TM_REST_Batch_Sync' => __DIR__ . '/../..' . '/classes/API/REST/class-wpml-tm-rest-batch-sync.php',
'WPML_TM_REST_Batch_Sync_Factory' => __DIR__ . '/../..' . '/classes/API/REST/class-wpml-tm-rest-batch-sync-factory.php',
'WPML_TM_REST_Jobs' => __DIR__ . '/../..' . '/classes/API/REST/class-wpml-tm-rest-jobs.php',
'WPML_TM_REST_Jobs_Factory' => __DIR__ . '/../..' . '/classes/API/REST/class-wpml-tm-rest-jobs-factory.php',
'WPML_TM_REST_Settings_Translation_Editor' => __DIR__ . '/../..' . '/classes/API/REST/class-wpml-tm-rest-settings-translation-editor.php',
'WPML_TM_REST_Settings_Translation_Editor_Factory' => __DIR__ . '/../..' . '/classes/API/REST/class-wpml-tm-rest-settings-translation-editor-factory.php',
'WPML_TM_REST_TP_XLIFF' => __DIR__ . '/../..' . '/classes/API/REST/class-wpml-tm-rest-tp-xliff.php',
'WPML_TM_REST_TP_XLIFF_Factory' => __DIR__ . '/../..' . '/classes/API/REST/class-wpml-tm-rest-tp-xliff-factory.php',
'WPML_TM_REST_XLIFF' => __DIR__ . '/../..' . '/classes/ATE/REST/class-wpml-tm-rest-xliff.php',
'WPML_TM_REST_XLIFF_Factory' => __DIR__ . '/../..' . '/classes/ATE/REST/class-wpml-tm-rest-xliff-factory.php',
'WPML_TM_Record_User' => __DIR__ . '/../..' . '/classes/abstract/class-wpml-tm-record-user.php',
'WPML_TM_Records' => __DIR__ . '/../..' . '/classes/records/class-wpml-tm-records.php',
'WPML_TM_Requirements' => __DIR__ . '/../..' . '/classes/class-wpml-tm-requirements.php',
'WPML_TM_Reset_Options_Filter' => __DIR__ . '/../..' . '/classes/reset/class-wpml-tm-reset-options-filter.php',
'WPML_TM_Reset_Options_Filter_Factory' => __DIR__ . '/../..' . '/classes/reset/class-wpml-tm-reset-options-filter-factory.php',
'WPML_TM_Resources_Factory' => __DIR__ . '/../..' . '/classes/class-wpml-tm-resources-factory.php',
'WPML_TM_Rest_Download_File' => __DIR__ . '/../..' . '/classes/API/REST/class-wpml-tm-rest-download-file.php',
'WPML_TM_Rest_Job_Progress' => __DIR__ . '/../..' . '/classes/API/REST/jobs/class-wpml-tm-rest-job-progress.php',
'WPML_TM_Rest_Job_Translator_Name' => __DIR__ . '/../..' . '/classes/API/REST/jobs/class-wpml-tm-rest-job-translator-name.php',
'WPML_TM_Rest_Jobs_Columns' => __DIR__ . '/../..' . '/classes/API/REST/jobs/class-wpml-tm-rest-jobs-columns.php',
'WPML_TM_Rest_Jobs_Criteria_Parser' => __DIR__ . '/../..' . '/classes/API/REST/jobs/class-wpml-tm-rest-jobs-criteria-parser.php',
'WPML_TM_Rest_Jobs_Element_Info' => __DIR__ . '/../..' . '/classes/API/REST/jobs/class-wpml-tm-rest-jobs-element-info.php',
'WPML_TM_Rest_Jobs_Language_Names' => __DIR__ . '/../..' . '/classes/API/REST/jobs/class-wpml-tm-rest-jobs-language-names.php',
'WPML_TM_Rest_Jobs_Package_Helper_Factory' => __DIR__ . '/../..' . '/classes/API/REST/jobs/class-wpml-tm-rest-jobs-package-helper-factory.php',
'WPML_TM_Rest_Jobs_Translation_Service' => __DIR__ . '/../..' . '/classes/API/REST/jobs/class-wpml-tm-rest-jobs-translation-service.php',
'WPML_TM_Rest_Jobs_View_Model' => __DIR__ . '/../..' . '/classes/API/REST/jobs/class-wpml-tm-rest-jobs-view-model.php',
'WPML_TM_Restore_Skipped_Migration' => __DIR__ . '/../..' . '/classes/notices/translation-jobs-migration/class-wpml-tm-restore-skipped-migration-hook.php',
'WPML_TM_Scripts_Factory' => __DIR__ . '/../..' . '/classes/menu/class-wpml-tm-scripts-factory.php',
'WPML_TM_Serialized_Custom_Field_Package_Handler' => __DIR__ . '/../..' . '/classes/settings/class-wpml-tm-serialized-custom-field-package-handler.php',
'WPML_TM_Serialized_Custom_Field_Package_Handler_Factory' => __DIR__ . '/../..' . '/classes/settings/class-wpml-tm-serialized-custom-field-package-handler-factory.php',
'WPML_TM_Service_Activation_AJAX' => __DIR__ . '/../..' . '/classes/class-wpml-tm-service-activation-ajax.php',
'WPML_TM_Setup_Wizard' => __DIR__ . '/../..' . '/classes/wizard/class-wpml-tm-setup-wizard.php',
'WPML_TM_Shortcodes_Catcher' => __DIR__ . '/../..' . '/classes/shortcodes/class-wpml-tm-shortcodes-catcher.php',
'WPML_TM_Shortcodes_Catcher_Factory' => __DIR__ . '/../..' . '/classes/shortcodes/class-wpml-tm-shortcodes-catcher-factory.php',
'WPML_TM_String' => __DIR__ . '/../..' . '/classes/words-count/class-wpml-tm-string.php',
'WPML_TM_String_Basket_Request' => __DIR__ . '/../..' . '/classes/wpml-st/class-wpml-tm-string-basket-request.php',
'WPML_TM_String_Xliff_Reader' => __DIR__ . '/../..' . '/classes/xliff/class-wpml-tm-string-xliff-reader.php',
'WPML_TM_Support_Info' => __DIR__ . '/../..' . '/classes/support/class-wpml-tm-support-info.php',
'WPML_TM_Support_Info_Filter' => __DIR__ . '/../..' . '/classes/support/class-wpml-tm-support-info-filter.php',
'WPML_TM_Sync_Installer_Wrapper' => __DIR__ . '/../..' . '/classes/translation-proxy/sync-jobs/class-wpml-tp-sync-installer-wrapper.php',
'WPML_TM_Sync_Jobs_Revision' => __DIR__ . '/../..' . '/classes/translation-proxy/sync-jobs/class-wpml-tp-sync-jobs-revision.php',
'WPML_TM_Sync_Jobs_Status' => __DIR__ . '/../..' . '/classes/translation-proxy/sync-jobs/class-wpml-tp-sync-jobs-status.php',
'WPML_TM_TF_AJAX_Feedback_List_Hooks_Factory' => __DIR__ . '/../..' . '/classes/translation-feedback/factories/action-loaders/wpml-tm-tf-ajax-feedback-list-hooks-factory.php',
'WPML_TM_TF_Feedback_List_Hooks' => __DIR__ . '/../..' . '/classes/translation-feedback/hooks/wpml-tm-tf-feedback-list-hooks.php',
'WPML_TM_TF_Feedback_List_Hooks_Factory' => __DIR__ . '/../..' . '/classes/translation-feedback/factories/action-loaders/wpml-tm-tf-feedback-list-hooks-factory.php',
'WPML_TM_TF_Module' => __DIR__ . '/../..' . '/classes/translation-feedback/wpml-tm-tf-module.php',
'WPML_TM_TS_Instructions_Hooks' => __DIR__ . '/../..' . '/classes/notices/translation-service-instruction/class-wpml-tm-ts-instructions-hooks.php',
'WPML_TM_TS_Instructions_Hooks_Factory' => __DIR__ . '/../..' . '/classes/notices/translation-service-instruction/class-wpml-tm-ts-instructions-hooks-factory.php',
'WPML_TM_TS_Instructions_Notice' => __DIR__ . '/../..' . '/classes/notices/translation-service-instruction/class-wpml-tm-ts-instructions-notice.php',
'WPML_TM_Translatable_Element' => __DIR__ . '/../..' . '/classes/words-count/class-wpml-tm-translatable-element.php',
'WPML_TM_Translatable_Element_Provider' => __DIR__ . '/../..' . '/classes/words-count/class-wpml-tm-translatable-element-provider.php',
'WPML_TM_Translate_Independently' => __DIR__ . '/../..' . '/classes/menu/translation-basket/class-wpml-tm-translate-independently.php',
'WPML_TM_Translated_Field' => __DIR__ . '/../..' . '/classes/class-wpml-tm-translated-field.php',
'WPML_TM_Translation_Basket_Dialog_Hooks' => __DIR__ . '/../..' . '/classes/translation-basket/wpml-tm-translation-basket-dialog-hooks.php',
'WPML_TM_Translation_Basket_Dialog_View' => __DIR__ . '/../..' . '/classes/translation-basket/wpml-tm-translation-basket-dialog-view.php',
'WPML_TM_Translation_Basket_Hooks_Factory' => __DIR__ . '/../..' . '/classes/translation-basket/class-wpml-tm-translation-basket-hooks-factory.php',
'WPML_TM_Translation_Basket_Validation_Notice' => __DIR__ . '/../..' . '/classes/translation-basket/class-wpml-tm-translation-basket-validation-notice.php',
'WPML_TM_Translation_Batch' => __DIR__ . '/../..' . '/classes/translation-batch/class-wpml-tm-translation-batch.php',
'WPML_TM_Translation_Batch_Element' => __DIR__ . '/../..' . '/classes/translation-batch/class-wpml-tm-translation-batch-element.php',
'WPML_TM_Translation_Batch_Factory' => __DIR__ . '/../..' . '/classes/translation-batch/class-wpml-tm-translation-batch-factory.php',
'WPML_TM_Translation_Jobs_Fix_Summary' => __DIR__ . '/../..' . '/classes/notices/translation-jobs-migration/class-wpml-tm-translation-jobs-fix-summary.php',
'WPML_TM_Translation_Jobs_Fix_Summary_Factory' => __DIR__ . '/../..' . '/classes/notices/translation-jobs-migration/class-wpml-tm-translation-jobs-fix-summary-factory.php',
'WPML_TM_Translation_Jobs_Fix_Summary_Notice' => __DIR__ . '/../..' . '/classes/notices/translation-jobs-migration/class-wpml-tm-translation-jobs-fix-summary-notice.php',
'WPML_TM_Translation_Priorities' => __DIR__ . '/../..' . '/classes/translation-priorities/class-wpml-tm-translation-priorities.php',
'WPML_TM_Translation_Priorities_Factory' => __DIR__ . '/../..' . '/classes/translation-priorities/class-wpml-tm-translation-priorities-factory.php',
'WPML_TM_Translation_Priorities_Register_Action' => __DIR__ . '/../..' . '/classes/translation-priorities/class-wpml-tm-translation-priorities-register-action.php',
'WPML_TM_Translation_Roles_Section' => __DIR__ . '/../..' . '/classes/menu/translation-roles/class-wpml-tm-translation-roles-section.php',
'WPML_TM_Translation_Roles_Section_Factory' => __DIR__ . '/../..' . '/classes/menu/translation-roles/class-wpml-tm-translation-roles-section-factory.php',
'WPML_TM_Translation_Status' => __DIR__ . '/../..' . '/classes/filters/class-wpml-tm-translation-status.php',
'WPML_TM_Translation_Status_Display' => __DIR__ . '/../..' . '/classes/filters/class-wpml-tm-translation-status-display.php',
'WPML_TM_Translator_Note' => __DIR__ . '/../..' . '/classes/translation-jobs/class-wpml-tm-translator-note.php',
'WPML_TM_Translators_Dropdown' => __DIR__ . '/../..' . '/classes/class-wpml-tm-translators-dropdown.php',
'WPML_TM_Translators_View' => __DIR__ . '/../..' . '/classes/menu/translation-roles/class-wpml-tm-translators-view.php',
'WPML_TM_Troubleshooting_Clear_TS' => __DIR__ . '/../..' . '/classes/class-wpml-tm-troubleshooting-clear-ts.php',
'WPML_TM_Troubleshooting_Clear_TS_UI' => __DIR__ . '/../..' . '/classes/class-wpml-tm-troubleshooting-clear-ts-ui.php',
'WPML_TM_Troubleshooting_Fix_Translation_Jobs_TP_ID' => __DIR__ . '/../..' . '/classes/notices/translation-jobs-migration/class-wpml-tm-troubleshooting-fix-translation-jobs-tp-id.php',
'WPML_TM_Troubleshooting_Fix_Translation_Jobs_TP_ID_Factory' => __DIR__ . '/../..' . '/classes/notices/translation-jobs-migration/class-wpml-tm-troubleshooting-fix-translation-jobs-tp-id-factory.php',
'WPML_TM_Troubleshooting_Reset_Pro_Trans_Config' => __DIR__ . '/../..' . '/classes/troubleshooting/class-wpml-tm-troubleshooting-reset-pro-trans-config.php',
'WPML_TM_Troubleshooting_Reset_Pro_Trans_Config_UI' => __DIR__ . '/../..' . '/classes/troubleshooting/class-wpml-tm-troubleshooting-reset-pro-trans-config-ui.php',
'WPML_TM_Troubleshooting_Reset_Pro_Trans_Config_UI_Factory' => __DIR__ . '/../..' . '/classes/troubleshooting/class-wpml-tm-troubleshooting-reset-pro-trans-config-ui-factory.php',
'WPML_TM_Unsent_Jobs' => __DIR__ . '/../..' . '/classes/translation-jobs/class-wpml-tm-unsent-jobs.php',
'WPML_TM_Unsent_Jobs_Notice' => __DIR__ . '/../..' . '/classes/translation-jobs/notices/class-wpml-tm-unsent-jobs-notice.php',
'WPML_TM_Unsent_Jobs_Notice_Hooks' => __DIR__ . '/../..' . '/classes/translation-jobs/notices/class-wpml-tm-unsent-jobs-notice-hooks.php',
'WPML_TM_Unsent_Jobs_Notice_Template' => __DIR__ . '/../..' . '/classes/translation-jobs/notices/class-wpml-tm-unsent-jobs-notice-template.php',
'WPML_TM_Update_External_Translation_Data_Action' => __DIR__ . '/../..' . '/inc/translation-jobs/helpers/wpml-update-external-translation-data-action.class.php',
'WPML_TM_Update_Post_Translation_Data_Action' => __DIR__ . '/../..' . '/inc/translation-jobs/helpers/wpml-update-post-translation-data-action.class.php',
'WPML_TM_Update_Translation_Data_Action' => __DIR__ . '/../..' . '/inc/translation-jobs/helpers/wpml-update-translation-data-action.class.php',
'WPML_TM_Update_Translation_Status' => __DIR__ . '/../..' . '/classes/records/class-wpml-tm-update-translation-status.php',
'WPML_TM_Upgrade_Cancel_Orphan_Jobs' => __DIR__ . '/../..' . '/classes/upgrade/commands/wpml-tm-upgrade-cancel-orphan-jobs.php',
'WPML_TM_Upgrade_Default_Editor_For_Old_Jobs' => __DIR__ . '/../..' . '/classes/upgrade/commands/class-wpml-tm-upgrade-default-editor-for-old-jobs.php',
'WPML_TM_Upgrade_Loader' => __DIR__ . '/../..' . '/classes/upgrade/class-wpml-tm-upgrade-loader.php',
'WPML_TM_Upgrade_Loader_Factory' => __DIR__ . '/../..' . '/classes/upgrade/class-wpml-tm-upgrade-loader-factory.php',
'WPML_TM_Upgrade_Service_Redirect_To_Field' => __DIR__ . '/../..' . '/classes/upgrade/commands/class-wpml-tm-upgrade-service-redirect-to-field.php',
'WPML_TM_Upgrade_Translation_Priorities_For_Posts' => __DIR__ . '/../..' . '/classes/upgrade/commands/class-wpml-tm-upgrade-translation-priorities-for-posts.php',
'WPML_TM_Upgrade_WPML_Site_ID_ATE' => __DIR__ . '/../..' . '/classes/upgrade/commands/class-wpml-tm-upgrade-wpml-site-id-ate.php',
'WPML_TM_Validate_HTML' => __DIR__ . '/../..' . '/classes/xliff/class-wpml-tm-validate-html.php',
'WPML_TM_WP_Query' => __DIR__ . '/../..' . '/classes/menu/dashboard/class-wpml-tm-wp-query.php',
'WPML_TM_Wizard_Options' => __DIR__ . '/../..' . '/classes/wizard/class-wpml-tm-wizard-options.php',
'WPML_TM_Wizard_Steps' => __DIR__ . '/../..' . '/classes/wizard/class-wpml-tm-wizard-steps.php',
'WPML_TM_Wizard_Steps_Factory' => __DIR__ . '/../..' . '/classes/wizard/class-wpml-tm-wizard-steps-factory.php',
'WPML_TM_Wizard_Summary_Step' => __DIR__ . '/../..' . '/classes/wizard/steps/class-wpml-tm-wizard-summary.php',
'WPML_TM_Wizard_Translation_Editor_Step' => __DIR__ . '/../..' . '/classes/wizard/steps/class-wpml-tm-wizard-editor.php',
'WPML_TM_Wizard_Who_Will_Translate_Step' => __DIR__ . '/../..' . '/classes/wizard/steps/class-wpml-tm-wizard-who-will-translate-step.php',
'WPML_TM_Word_Calculator' => __DIR__ . '/../..' . '/classes/words-count/processor/calculator/wpml-tm-word-calculator.php',
'WPML_TM_Word_Calculator_Post_Custom_Fields' => __DIR__ . '/../..' . '/classes/words-count/processor/calculator/post/wpml-tm-word-calculator-post-custom-fields.php',
'WPML_TM_Word_Calculator_Post_Object' => __DIR__ . '/../..' . '/classes/words-count/processor/calculator/post/wpml-tm-word-calculator-post-object.php',
'WPML_TM_Word_Calculator_Post_Packages' => __DIR__ . '/../..' . '/classes/words-count/processor/calculator/post/wpml-tm-word-calculator-post-packages.php',
'WPML_TM_Word_Count_Admin_Hooks' => __DIR__ . '/../..' . '/classes/words-count/hooks/wpml-tm-word-count-admin-hooks.php',
'WPML_TM_Word_Count_Ajax_Hooks' => __DIR__ . '/../..' . '/classes/words-count/hooks/wpml-tm-word-count-ajax-hooks.php',
'WPML_TM_Word_Count_Background_Process' => __DIR__ . '/../..' . '/classes/words-count/queue/background-process/wpml-tm-word-count-background-process.php',
'WPML_TM_Word_Count_Background_Process_Factory' => __DIR__ . '/../..' . '/classes/words-count/queue/background-process/wpml-tm-word-count-background-process-factory.php',
'WPML_TM_Word_Count_Background_Process_Requested_Types' => __DIR__ . '/../..' . '/classes/words-count/queue/background-process/wpml-tm-word-count-background-process-requested-types.php',
'WPML_TM_Word_Count_Hooks_Factory' => __DIR__ . '/../..' . '/classes/words-count/hooks/wpml-tm-word-count-hooks-factory.php',
'WPML_TM_Word_Count_Post_Records' => __DIR__ . '/../..' . '/classes/words-count/records/wpml-tm-word-count-post-records.php',
'WPML_TM_Word_Count_Process_Hooks' => __DIR__ . '/../..' . '/classes/words-count/hooks/wpml-tm-word-count-process-hooks.php',
'WPML_TM_Word_Count_Queue_Items_Requested_Types' => __DIR__ . '/../..' . '/classes/words-count/queue/items/wpml-tm-word-count-queue-items-requested-types.php',
'WPML_TM_Word_Count_Records' => __DIR__ . '/../..' . '/classes/words-count/records/wpml-tm-word-count-records.php',
'WPML_TM_Word_Count_Records_Factory' => __DIR__ . '/../..' . '/classes/words-count/records/wpml-tm-word-count-records-factory.php',
'WPML_TM_Word_Count_Refresh_Hooks' => __DIR__ . '/../..' . '/classes/words-count/hooks/wpml-tm-word-count-refresh-hooks.php',
'WPML_TM_Word_Count_Report' => __DIR__ . '/../..' . '/classes/words-count/report/wpml-tm-word-count-report.php',
'WPML_TM_Word_Count_Report_View' => __DIR__ . '/../..' . '/classes/words-count/report/wpml-tm-word-count-report-view.php',
'WPML_TM_Word_Count_Set_Package' => __DIR__ . '/../..' . '/classes/words-count/processor/wpml-tm-word-count-set-package.php',
'WPML_TM_Word_Count_Set_Post' => __DIR__ . '/../..' . '/classes/words-count/processor/wpml-tm-word-count-set-post.php',
'WPML_TM_Word_Count_Set_String' => __DIR__ . '/../..' . '/classes/words-count/processor/wpml-tm-word-count-set-string.php',
'WPML_TM_Word_Count_Setters_Factory' => __DIR__ . '/../..' . '/classes/words-count/processor/wpml-tm-word-count-setters-factory.php',
'WPML_TM_Word_Count_Single_Process' => __DIR__ . '/../..' . '/classes/words-count/processor/wpml-tm-word-count-single-process.php',
'WPML_TM_Word_Count_Single_Process_Factory' => __DIR__ . '/../..' . '/classes/words-count/processor/wpml-tm-word-count-single-process-factory.php',
'WPML_TM_XLIFF' => __DIR__ . '/../..' . '/classes/xliff/wpml-tm-xliff.php',
'WPML_TM_XLIFF_Factory' => __DIR__ . '/../..' . '/classes/xliff/class-wpml-tm-xliff-factory.php',
'WPML_TM_XLIFF_Phase' => __DIR__ . '/../..' . '/classes/xliff/classs-wpml-tm-xliff-phase.php',
'WPML_TM_XLIFF_Post_Type' => __DIR__ . '/../..' . '/classes/xliff/class-wpml-tm-xliff-post-type.php',
'WPML_TM_XLIFF_Shortcodes' => __DIR__ . '/../..' . '/classes/xliff/class-wpml-tm-xliff-shortcodes.php',
'WPML_TM_XLIFF_Translator_Notes' => __DIR__ . '/../..' . '/classes/xliff/class-wpml-tm-xliff-translator-notes.php',
'WPML_TM_Xliff_Frontend' => __DIR__ . '/../..' . '/classes/xliff/class-wpml-tm-xliff-frontend.php',
'WPML_TM_Xliff_Reader' => __DIR__ . '/../..' . '/classes/xliff/class-wpml-tm-xliff-reader.php',
'WPML_TM_Xliff_Reader_Factory' => __DIR__ . '/../..' . '/classes/xliff/class-wpml-tm-xliff-reader-factory.php',
'WPML_TM_Xliff_Shared' => __DIR__ . '/../..' . '/classes/xliff/class-wpml-tm-xliff-shared.php',
'WPML_TM_Xliff_Writer' => __DIR__ . '/../..' . '/classes/xliff/class-wpml-tm-xliff-writer.php',
'WPML_TP_API' => __DIR__ . '/../..' . '/classes/translation-proxy/api/class-wpml-tp-api.php',
'WPML_TP_API_Batches' => __DIR__ . '/../..' . '/classes/tp-client/api/wpml-tp-api-batches.php',
'WPML_TP_API_Client' => __DIR__ . '/../..' . '/classes/translation-proxy/api/class-wpml-tp-api-client.php',
'WPML_TP_API_Exception' => __DIR__ . '/../..' . '/classes/translation-proxy/api/class-wpml-tp-api-exception.php',
'WPML_TP_API_Log_Interface' => __DIR__ . '/../..' . '/classes/translation-proxy/api/class-wpml-tp-api-log-interface.php',
'WPML_TP_API_Request' => __DIR__ . '/../..' . '/classes/translation-proxy/api/class-wpml-tp-api-request.php',
'WPML_TP_API_Services' => __DIR__ . '/../..' . '/classes/tp-client/api/wpml-tp-api-services.php',
'WPML_TP_API_TF_Feedback' => __DIR__ . '/../..' . '/classes/tp-client/api/wpml-tp-api-tf-feedback.php',
'WPML_TP_API_TF_Ratings' => __DIR__ . '/../..' . '/classes/tp-client/api/wpml-tp-api-tf-ratings.php',
'WPML_TP_Abstract_API' => __DIR__ . '/../..' . '/classes/tp-client/api/wpml-tp-abstract-api.php',
'WPML_TP_Apply_Single_Job' => __DIR__ . '/../..' . '/classes/translation-proxy/translations/apply/class-wpml-tp-apply-single-job.php',
'WPML_TP_Apply_Translation_Post_Strategy' => __DIR__ . '/../..' . '/classes/translation-proxy/translations/apply/class-wpml-tp-apply-translation-post-strategy.php',
'WPML_TP_Apply_Translation_Strategies' => __DIR__ . '/../..' . '/classes/translation-proxy/translations/apply/class-wpml-tp-apply-translation-strategies.php',
'WPML_TP_Apply_Translation_Strategy' => __DIR__ . '/../..' . '/classes/translation-proxy/translations/apply/class-wpml-tp-apply-translation-strategy.php',
'WPML_TP_Apply_Translation_String_Strategy' => __DIR__ . '/../..' . '/classes/translation-proxy/translations/apply/class-wpml-tp-apply-translation-string-strategy.php',
'WPML_TP_Apply_Translations' => __DIR__ . '/../..' . '/classes/translation-proxy/translations/class-wpml-tp-apply-translation.php',
'WPML_TP_Batch' => __DIR__ . '/../..' . '/classes/tp-client/tp-rest-objects/wpml-tp-batch.php',
'WPML_TP_Batch_Exception' => __DIR__ . '/../..' . '/classes/tp-client/exceptions/wpml-tp-batch-exception.php',
'WPML_TP_Batch_Sync_API' => __DIR__ . '/../..' . '/classes/translation-proxy/api/class-wpml-tp-batch-sync-api.php',
'WPML_TP_Client' => __DIR__ . '/../..' . '/classes/tp-client/wpml-tp-client.php',
'WPML_TP_Client_Factory' => __DIR__ . '/../..' . '/classes/tp-client/wpml-tp-client-factory.php',
'WPML_TP_Exception' => __DIR__ . '/../..' . '/classes/tp-client/exceptions/wpml-tp-exception.php',
'WPML_TP_Extra_Field' => __DIR__ . '/../..' . '/classes/translation-proxy/models/wpml-tp-extra-field.php',
'WPML_TP_Extra_Field_Display' => __DIR__ . '/../..' . '/classes/translation-proxy/ui/wpml-tp-extra-field-display.php',
'WPML_TP_HTTP_Request_Filter' => __DIR__ . '/../..' . '/classes/translation-proxy/class-wpml-tp-http-request-filter.php',
'WPML_TP_Job' => __DIR__ . '/../..' . '/classes/tp-client/tp-rest-objects/wpml-tp-job.php',
'WPML_TP_Job_Factory' => __DIR__ . '/../..' . '/classes/tp-client/tp-rest-objects/wpml-tp-job-factory.php',
'WPML_TP_Job_States' => __DIR__ . '/../..' . '/classes/translation-proxy/api/class-wpml-tp-job-states.php',
'WPML_TP_Job_Status' => __DIR__ . '/../..' . '/classes/translation-proxy/api/class-wpml-tp-job-status.php',
'WPML_TP_Jobs_API' => __DIR__ . '/../..' . '/classes/translation-proxy/api/class-wpml-tp-jobs-api.php',
'WPML_TP_Jobs_Collection' => __DIR__ . '/../..' . '/classes/tp-client/class-wpml-tp-jobs-collection.php',
'WPML_TP_Jobs_Collection_Factory' => __DIR__ . '/../..' . '/classes/tp-client/wpml-tp-jobs-collection-factory.php',
'WPML_TP_Lock' => __DIR__ . '/../..' . '/classes/translation-proxy/lock/wpml-tp-lock.php',
'WPML_TP_Lock_Factory' => __DIR__ . '/../..' . '/classes/translation-proxy/lock/wpml-tp-lock-factory.php',
'WPML_TP_Lock_Notice' => __DIR__ . '/../..' . '/classes/translation-proxy/lock/wpml-tp-lock-notice.php',
'WPML_TP_Lock_Notice_Factory' => __DIR__ . '/../..' . '/classes/translation-proxy/lock/wpml-tp-lock-notice-factory.php',
'WPML_TP_Project' => __DIR__ . '/../..' . '/classes/tp-client/wpml-tp-project.php',
'WPML_TP_Project_API' => __DIR__ . '/../..' . '/classes/translation-proxy/api/class-wpml-tp-project-api.php',
'WPML_TP_Project_User' => __DIR__ . '/../..' . '/classes/translation-proxy/class-wpml-tp-project-user.php',
'WPML_TP_REST_Object' => __DIR__ . '/../..' . '/classes/tp-client/tp-rest-objects/wpml-tp-rest-object.php',
'WPML_TP_Refresh_Language_Pairs' => __DIR__ . '/../..' . '/classes/translation-proxy/class-wpml-tp-refresh-language-pairs.php',
'WPML_TP_Service' => __DIR__ . '/../..' . '/classes/tp-client/tp-rest-objects/wpml-tp-service.php',
'WPML_TP_Services' => __DIR__ . '/../..' . '/classes/translation-proxy/api/class-wpml-tp-services.php',
'WPML_TP_String_Job' => __DIR__ . '/../..' . '/classes/translation-proxy/class-wpml-tp-string-job.php',
'WPML_TP_Sync_Ajax_Handler' => __DIR__ . '/../..' . '/classes/translation-proxy/sync-jobs/class-wpml-tp-sync-ajax-handler.php',
'WPML_TP_Sync_Jobs' => __DIR__ . '/../..' . '/classes/translation-proxy/sync-jobs/class-wpml-tp-sync-jobs.php',
'WPML_TP_Sync_Orphan_Jobs' => __DIR__ . '/../..' . '/classes/translation-proxy/sync-jobs/wpml-tp-sync-orphan-jobs.php',
'WPML_TP_Sync_Orphan_Jobs_Factory' => __DIR__ . '/../..' . '/classes/translation-proxy/sync-jobs/wpml-tp-sync-orphan-jobs-factory.php',
'WPML_TP_Sync_Update_Job' => __DIR__ . '/../..' . '/classes/translation-proxy/sync-jobs/class-wpml-tp-sync-update-job.php',
'WPML_TP_TM_Jobs' => __DIR__ . '/../..' . '/classes/tp-client/wpml-tp-tm-jobs.php',
'WPML_TP_Translation' => __DIR__ . '/../..' . '/classes/translation-proxy/translations/class-wpml-tp-translation.php',
'WPML_TP_Translation_Collection' => __DIR__ . '/../..' . '/classes/translation-proxy/translations/class-wpml-tp-translation-collection.php',
'WPML_TP_Translations_Repository' => __DIR__ . '/../..' . '/classes/translation-proxy/translations/class-wpml-tp-translations-repository.php',
'WPML_TP_Translator' => __DIR__ . '/../..' . '/classes/translation-proxy/class-wpml-tp-translator.php',
'WPML_TP_XLIFF_API' => __DIR__ . '/../..' . '/classes/translation-proxy/api/class-wpml-tp-xliff-api.php',
'WPML_TP_Xliff_Parser' => __DIR__ . '/../..' . '/classes/translation-proxy/api/class-wpml-tp-xliff-parser.php',
'WPML_Translate_Link_Target_Global_State' => __DIR__ . '/../..' . '/classes/translate_link_targets/class-wpml-translate-link-target-global-state.php',
'WPML_Translate_Link_Targets_In_Content' => __DIR__ . '/../..' . '/classes/translate_link_targets/class-wpml-translate-link-targets-in-content.php',
'WPML_Translate_Link_Targets_In_Posts' => __DIR__ . '/../..' . '/classes/translate_link_targets/class-wpml-translate-link-targets-in-posts.php',
'WPML_Translate_Link_Targets_In_Posts_Global' => __DIR__ . '/../..' . '/classes/translate_link_targets/class-wpml-translate-link-targets-in-posts-global.php',
'WPML_Translate_Link_Targets_In_Strings' => __DIR__ . '/../..' . '/classes/translate_link_targets/class-wpml-translate-link-targets-in-strings.php',
'WPML_Translate_Link_Targets_In_Strings_Global' => __DIR__ . '/../..' . '/classes/translate_link_targets/class-wpml-translate-link-targets-in-strings-global.php',
'WPML_Translate_Link_Targets_UI' => __DIR__ . '/../..' . '/classes/menu/mcsetup/class-wpml-translate-link-targets-ui.php',
'WPML_TranslationProxy_Com_Log' => __DIR__ . '/../..' . '/classes/translation-proxy/class-wpml-translationproxy-com-log.php',
'WPML_TranslationProxy_Communication_Log' => __DIR__ . '/../..' . '/classes/translation-proxy/log/class-wpml-translationproxy-communication-log.php',
'WPML_Translation_Basket' => __DIR__ . '/../..' . '/inc/translation-proxy/wpml-translation-basket.class.php',
'WPML_Translation_Basket_Validation' => __DIR__ . '/../..' . '/classes/translation-basket/class-wpml-translation-basket-validation.php',
'WPML_Translation_Batch' => __DIR__ . '/../..' . '/inc/translation-jobs/wpml-translation-batch.class.php',
'WPML_Translation_Batch_Factory' => __DIR__ . '/../..' . '/inc/translation-jobs/class-wpml-translation-batch-factory.php',
'WPML_Translation_Editor' => __DIR__ . '/../..' . '/classes/menu/translation-editor/class-wpml-translation-editor.php',
'WPML_Translation_Editor_Header' => __DIR__ . '/../..' . '/classes/menu/translation-editor/class-wpml-translation-editor-header.php',
'WPML_Translation_Editor_Languages' => __DIR__ . '/../..' . '/classes/menu/translation-editor/class-wpml-translation-editor-languages.php',
'WPML_Translation_Editor_UI' => __DIR__ . '/../..' . '/classes/menu/translation-editor/class-wpml-translation-editor-ui.php',
'WPML_Translation_Job' => __DIR__ . '/../..' . '/inc/translation-jobs/jobs/wpml-translation-job.class.php',
'WPML_Translation_Job_Factory' => __DIR__ . '/../..' . '/classes/class-wpml-translation-job-factory.php',
'WPML_Translation_Job_Helper' => __DIR__ . '/../..' . '/inc/translation-jobs/helpers/wpml-translation-job-helper.class.php',
'WPML_Translation_Job_Helper_With_API' => __DIR__ . '/../..' . '/inc/translation-jobs/helpers/wpml-translation-job-helper-with-api.class.php',
'WPML_Translation_Jobs_Collection' => __DIR__ . '/../..' . '/inc/translation-jobs/wpml-translation-jobs-collection.class.php',
'WPML_Translation_Jobs_Fixing_Migration_Ajax' => __DIR__ . '/../..' . '/classes/notices/translation-jobs-migration/class-wpml-translation-jobs-fixing-migration-ajax.php',
'WPML_Translation_Jobs_Migration' => __DIR__ . '/../..' . '/classes/notices/translation-jobs-migration/class-wpml-translation-jobs-migration.php',
'WPML_Translation_Jobs_Migration_Ajax' => __DIR__ . '/../..' . '/classes/notices/translation-jobs-migration/class-wpml-translation-jobs-migration-ajax.php',
'WPML_Translation_Jobs_Migration_Hooks' => __DIR__ . '/../..' . '/classes/notices/translation-jobs-migration/class-wpml-translation-jobs-migration-hooks.php',
'WPML_Translation_Jobs_Migration_Hooks_Factory' => __DIR__ . '/../..' . '/classes/notices/translation-jobs-migration/class-wpml-translation-jobs-migration-hooks-factory.php',
'WPML_Translation_Jobs_Migration_Notice' => __DIR__ . '/../..' . '/classes/notices/translation-jobs-migration/class-wpml-translation-jobs-migration-notice.php',
'WPML_Translation_Jobs_Migration_Repository' => __DIR__ . '/../..' . '/classes/notices/translation-jobs-migration/class-wpml-translation-jobs-migration-repository.php',
'WPML_Translation_Jobs_Missing_TP_ID_Migration_Notice' => __DIR__ . '/../..' . '/classes/notices/translation-jobs-migration/class-wpml-translation-jobs-missing-tp-id-migration-notice.php',
'WPML_Translation_Management' => __DIR__ . '/../..' . '/classes/class-wpml-translation-management.php',
'WPML_Translation_Manager_Ajax' => __DIR__ . '/../..' . '/classes/menu/translation-roles/class-wpml-translation-manager-ajax-actions.php',
'WPML_Translation_Manager_Records' => __DIR__ . '/../..' . '/classes/user/class-wpml-translation-manager-records.php',
'WPML_Translation_Manager_Settings' => __DIR__ . '/../..' . '/classes/menu/translation-roles/class-wpml-translation-manager-settings.php',
'WPML_Translation_Manager_View' => __DIR__ . '/../..' . '/classes/menu/translation-roles/class-wpml-translation-manager-view.php',
'WPML_Translation_Proxy_API' => __DIR__ . '/../..' . '/classes/class-wpml-translation-proxy-api.php',
'WPML_Translation_Proxy_Basket_Networking' => __DIR__ . '/../..' . '/inc/translation-proxy/wpml-translationproxy-basket-networking.class.php',
'WPML_Translation_Proxy_Networking' => __DIR__ . '/../..' . '/classes/translation-proxy/class-wpml-translation-proxy-networking.php',
'WPML_Translation_Roles_Ajax' => __DIR__ . '/../..' . '/classes/menu/translation-roles/class-wpml-translation-roles-ajax-actions.php',
'WPML_Translation_Roles_Ajax_Factory' => __DIR__ . '/../..' . '/classes/menu/translation-roles/class-wpml-translation-roles-ajax-factory.php',
'WPML_Translation_Roles_Records' => __DIR__ . '/../..' . '/classes/user/class-wpml-translation-roles-records.php',
'WPML_Translations_Queue' => __DIR__ . '/../..' . '/classes/menu/translation-queue/class-wpml-translations-queue.php',
'WPML_Translations_Queue_Factory' => __DIR__ . '/../..' . '/classes/menu/translation-queue/class-wpml-translations-queue-factory.php',
'WPML_Translations_Queue_Jobs_Model' => __DIR__ . '/../..' . '/classes/menu/translation-queue/class-wpml-translations-queue-jobs-model.php',
'WPML_Translations_Queue_Pagination_UI' => __DIR__ . '/../..' . '/classes/menu/translation-queue/class-wpml-translations-queue-pagination-ui.php',
'WPML_Translator_Admin_Records' => __DIR__ . '/../..' . '/classes/user/class-wpml-translator-admin-records.php',
'WPML_Translator_Ajax' => __DIR__ . '/../..' . '/classes/menu/translation-roles/class-wpml-translator-ajax-actions.php',
'WPML_Translator_Records' => __DIR__ . '/../..' . '/classes/user/class-wpml-translator-records.php',
'WPML_Translator_Role' => __DIR__ . '/../..' . '/classes/roles/class-wpml-translator-role.php',
'WPML_Translator_Settings' => __DIR__ . '/../..' . '/classes/menu/translation-roles/wpml-translator-settings.class.php',
'WPML_Translator_Settings_Interface' => __DIR__ . '/../..' . '/classes/menu/translation-roles/wpml-translator-setings-interface.php',
'WPML_Translator_Settings_Proxy' => __DIR__ . '/../..' . '/classes/menu/translation-roles/wpml-translator-settings-proxy.php',
'WPML_Translator_View' => __DIR__ . '/../..' . '/classes/menu/translation-roles/class-wpml-translator-view.php',
'WPML_Update_PickUp_Method' => __DIR__ . '/../..' . '/classes/translation-proxy/class-wpml-update-pickup-method.php',
'WPML_User_Jobs_Notification_Settings' => __DIR__ . '/../..' . '/classes/user/wpml-user-jobs-notification-settings.php',
'WPML_User_Jobs_Notification_Settings_Render' => __DIR__ . '/../..' . '/classes/user/wpml-user-jobs-notification-settings-render.php',
'WPML_User_Jobs_Notification_Settings_Template' => __DIR__ . '/../..' . '/classes/user/wpml-user-jobs-notification-settings-template.php',
'WPML_WP_Cron_Check' => __DIR__ . '/../..' . '/classes/utils/wpml-wp-cron-check.php',
'WP_Async_Request' => __DIR__ . '/..' . '/a5hleyrich/wp-background-processing/classes/wp-async-request.php',
'WP_Background_Process' => __DIR__ . '/..' . '/a5hleyrich/wp-background-processing/classes/wp-background-process.php',
'wpml_zip' => __DIR__ . '/../..' . '/inc/wpml_zip.php',
);
public static function getInitializer(ClassLoader $loader)
{
return \Closure::bind(function () use ($loader) {
$loader->classMap = ComposerStaticInitcf33eb903f9fa638ba4a6cac437df73a::$classMap;
}, null, ClassLoader::class);
}
}

View File

@@ -0,0 +1,21 @@
The MIT License (MIT)
Copyright (c) 2015 Jake A. Smith
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

View File

@@ -0,0 +1,174 @@
<?php
/**
* URL constants as defined in the PHP Manual under "Constants usable with
* http_build_url()".
*
* @see http://us2.php.net/manual/en/http.constants.php#http.constants.url
*/
if (!defined('HTTP_URL_REPLACE')) {
define('HTTP_URL_REPLACE', 1);
}
if (!defined('HTTP_URL_JOIN_PATH')) {
define('HTTP_URL_JOIN_PATH', 2);
}
if (!defined('HTTP_URL_JOIN_QUERY')) {
define('HTTP_URL_JOIN_QUERY', 4);
}
if (!defined('HTTP_URL_STRIP_USER')) {
define('HTTP_URL_STRIP_USER', 8);
}
if (!defined('HTTP_URL_STRIP_PASS')) {
define('HTTP_URL_STRIP_PASS', 16);
}
if (!defined('HTTP_URL_STRIP_AUTH')) {
define('HTTP_URL_STRIP_AUTH', 32);
}
if (!defined('HTTP_URL_STRIP_PORT')) {
define('HTTP_URL_STRIP_PORT', 64);
}
if (!defined('HTTP_URL_STRIP_PATH')) {
define('HTTP_URL_STRIP_PATH', 128);
}
if (!defined('HTTP_URL_STRIP_QUERY')) {
define('HTTP_URL_STRIP_QUERY', 256);
}
if (!defined('HTTP_URL_STRIP_FRAGMENT')) {
define('HTTP_URL_STRIP_FRAGMENT', 512);
}
if (!defined('HTTP_URL_STRIP_ALL')) {
define('HTTP_URL_STRIP_ALL', 1024);
}
if (!function_exists('http_build_url')) {
/**
* Build a URL.
*
* The parts of the second URL will be merged into the first according to
* the flags argument.
*
* @param mixed $url (part(s) of) an URL in form of a string or
* associative array like parse_url() returns
* @param mixed $parts same as the first argument
* @param int $flags a bitmask of binary or'ed HTTP_URL constants;
* HTTP_URL_REPLACE is the default
* @param array $new_url if set, it will be filled with the parts of the
* composed url like parse_url() would return
* @return string
*/
function http_build_url($url, $parts = array(), $flags = HTTP_URL_REPLACE, &$new_url = array())
{
is_array($url) || $url = parse_url($url);
is_array($parts) || $parts = parse_url($parts);
isset($url['query']) && is_string($url['query']) || $url['query'] = null;
isset($parts['query']) && is_string($parts['query']) || $parts['query'] = null;
$keys = array('user', 'pass', 'port', 'path', 'query', 'fragment');
// HTTP_URL_STRIP_ALL and HTTP_URL_STRIP_AUTH cover several other flags.
if ($flags & HTTP_URL_STRIP_ALL) {
$flags |= HTTP_URL_STRIP_USER | HTTP_URL_STRIP_PASS
| HTTP_URL_STRIP_PORT | HTTP_URL_STRIP_PATH
| HTTP_URL_STRIP_QUERY | HTTP_URL_STRIP_FRAGMENT;
} elseif ($flags & HTTP_URL_STRIP_AUTH) {
$flags |= HTTP_URL_STRIP_USER | HTTP_URL_STRIP_PASS;
}
// Schema and host are alwasy replaced
foreach (array('scheme', 'host') as $part) {
if (isset($parts[$part])) {
$url[$part] = $parts[$part];
}
}
if ($flags & HTTP_URL_REPLACE) {
foreach ($keys as $key) {
if (isset($parts[$key])) {
$url[$key] = $parts[$key];
}
}
} else {
if (isset($parts['path']) && ($flags & HTTP_URL_JOIN_PATH)) {
if (isset($url['path']) && substr($parts['path'], 0, 1) !== '/') {
// Workaround for trailing slashes
$url['path'] .= 'a';
$url['path'] = rtrim(
str_replace(basename($url['path']), '', $url['path']),
'/'
) . '/' . ltrim($parts['path'], '/');
} else {
$url['path'] = $parts['path'];
}
}
if (isset($parts['query']) && ($flags & HTTP_URL_JOIN_QUERY)) {
if (isset($url['query'])) {
parse_str($url['query'], $url_query);
parse_str($parts['query'], $parts_query);
$url['query'] = http_build_query(
array_replace_recursive(
$url_query,
$parts_query
)
);
} else {
$url['query'] = $parts['query'];
}
}
}
if (isset($url['path']) && $url['path'] !== '' && substr($url['path'], 0, 1) !== '/') {
$url['path'] = '/' . $url['path'];
}
foreach ($keys as $key) {
$strip = 'HTTP_URL_STRIP_' . strtoupper($key);
if ($flags & constant($strip)) {
unset($url[$key]);
}
}
$parsed_string = '';
if (!empty($url['scheme'])) {
$parsed_string .= $url['scheme'] . '://';
}
if (!empty($url['user'])) {
$parsed_string .= $url['user'];
if (isset($url['pass'])) {
$parsed_string .= ':' . $url['pass'];
}
$parsed_string .= '@';
}
if (!empty($url['host'])) {
$parsed_string .= $url['host'];
}
if (!empty($url['port'])) {
$parsed_string .= ':' . $url['port'];
}
if (!empty($url['path'])) {
$parsed_string .= $url['path'];
}
if (!empty($url['query'])) {
$parsed_string .= '?' . $url['query'];
}
if (!empty($url['fragment'])) {
$parsed_string .= '#' . $url['fragment'];
}
$new_url = $url;
return $parsed_string;
}
}

View File

@@ -0,0 +1,98 @@
<?php
class WPML_Cache_Directory {
const DIR_PERMISSIONS = 0775;
const MAIN_DIRECTORY_NAME = 'wpml';
const NOTICE_GROUP = 'wpml-cache-directory';
const NOTICE_INVALID_CACHE = 'invalid-cache';
private $cache_disabled = false;
/**
* @var WPML_WP_API
*/
private $wp_api;
/**
* @var WP_Filesystem_Direct
*/
private $filesystem;
/**
* WPML_Cache_Directory constructor.
*
* @param WPML_WP_API $wp_api
*/
public function __construct( WPML_WP_API $wp_api ) {
$this->wp_api = $wp_api;
$this->filesystem = $wp_api->get_wp_filesystem_direct();
}
/**
* @return string
*/
private function get_main_directory_path() {
$main_directory_path = null;
$cache_path_root = $this->wp_api->constant( 'WPML_CACHE_PATH_ROOT' );
if ( $cache_path_root ) {
$main_directory_path = trailingslashit( $cache_path_root ) . self::MAIN_DIRECTORY_NAME;
return trailingslashit( $main_directory_path );
}else {
$upload_dir = wp_upload_dir();
if ( empty( $upload_dir['error'] ) ) {
$base_dir = $upload_dir['basedir'];
$main_directory_path = trailingslashit( $base_dir ) . 'cache/' . self::MAIN_DIRECTORY_NAME;
return trailingslashit( $main_directory_path );
}
}
return null;
}
/**
* The function `wp_mkdir_p` will create directories recursively
*
* @param string $absolute_path
*
* @return string|bool absolute path or false if we can't have a writable and readable directory
*/
private function maybe_create_directory( $absolute_path ) {
$result = true;
if ( ! $this->filesystem->is_dir( $absolute_path ) ) {
$result = wp_mkdir_p( $absolute_path );
}
return $result ? $absolute_path : false;
}
/**
* @param string $relative_path
*
* @return string|bool absolute path or false if we can't have a writable and readable directory
*/
public function get( $relative_path = '' ) {
$absolute_path = false;
$main_directory_path = $this->maybe_create_directory( $this->get_main_directory_path() );
if ( $main_directory_path ) {
$absolute_path = trailingslashit( $main_directory_path . ltrim( $relative_path, '/\\' ) );
$absolute_path = $this->maybe_create_directory( $absolute_path );
}
return $absolute_path;
}
/**
* @param string $relative_path
*/
public function remove( $relative_path = '' ) {
$main_directory_path = $this->get_main_directory_path();
if ( $main_directory_path ) {
$absolute_path = trailingslashit( $main_directory_path . ltrim( $relative_path, '/\\' ) );
$this->filesystem->delete( $absolute_path, true );
}
}
}

View File

@@ -0,0 +1,24 @@
<?php
class WPML_Core_Version_Check {
public static function is_ok( $package_file_path ) {
$is_ok = false;
/** @var array $bundle */
$bundle = json_decode( file_get_contents( $package_file_path ), true );
if ( defined( 'ICL_SITEPRESS_VERSION' ) && is_array( $bundle ) ) {
$core_version_stripped = ICL_SITEPRESS_VERSION;
$dev_or_beta_pos = strpos( ICL_SITEPRESS_VERSION, '-' );
if ( $dev_or_beta_pos > 0 ) {
$core_version_stripped = substr( ICL_SITEPRESS_VERSION, 0, $dev_or_beta_pos );
}
if ( version_compare( $core_version_stripped, $bundle['sitepress-multilingual-cms'], '>=' ) ) {
$is_ok = true;
}
}
return $is_ok;
}
}

View File

@@ -0,0 +1,357 @@
<?php
/*
Module Name: WPML Dependency Check Module
Description: This is not a plugin! This module must be included in other plugins (WPML and add-ons) to handle compatibility checks
Author: OnTheGoSystems
Author URI: http://www.onthegosystems.com/
Version: 2.1
*/
/** @noinspection PhpUndefinedClassInspection */
class WPML_Dependencies {
protected static $instance;
private $admin_notice;
private $current_product;
private $current_version = array();
private $expected_versions = array();
private $installed_plugins = array();
private $invalid_plugins = array();
private $valid_plugins = array();
private $validation_results = array();
public $data_key = 'wpml_dependencies:';
public $needs_validation_key = 'wpml_dependencies:needs_validation';
private function __construct() {
if ( null === self::$instance ) {
$this->remove_old_admin_notices();
$this->init_hooks();
}
}
private function collect_data() {
$active_plugins = wp_get_active_and_valid_plugins();
$this->init_bundle( $active_plugins );
foreach ( $active_plugins as $plugin ) {
$this->add_installed_plugin( $plugin );
}
}
protected function remove_old_admin_notices() {
if ( class_exists( 'WPML_Bundle_Check' ) ) {
global $WPML_Bundle_Check;
remove_action( 'admin_notices', array( $WPML_Bundle_Check, 'admin_notices_action' ) );
}
}
private function init_hooks() {
add_action( 'init', array( $this, 'init_plugins_action' ) );
add_action( 'extra_plugin_headers', array( $this, 'extra_plugin_headers_action' ) );
add_action( 'admin_notices', array( $this, 'admin_notices_action' ) );
add_action( 'activated_plugin', array( $this, 'activated_plugin_action' ) );
add_action( 'deactivated_plugin', array( $this, 'deactivated_plugin_action' ) );
add_action( 'upgrader_process_complete', array( $this, 'upgrader_process_complete_action' ), 10, 2 );
add_action( 'load-plugins.php', array( $this, 'run_validation_on_plugins_page' ) );
}
public function run_validation_on_plugins_page() {
$this->reset_validation();
}
public function activated_plugin_action() {
$this->reset_validation();
}
public function deactivated_plugin_action() {
$this->reset_validation();
}
public function upgrader_process_complete_action( $upgrader_object, $options ) {
if ( 'update' === $options['action'] && 'plugin' === $options['type'] ) {
$this->reset_validation();
}
}
private function reset_validation() {
update_option( $this->needs_validation_key, true );
$this->validate_plugins();
}
private function flag_as_validated() {
update_option( $this->needs_validation_key, false );
}
private function needs_validation() {
return get_option( $this->needs_validation_key );
}
public function admin_notices_action() {
$this->maybe_init_admin_notice();
if ( $this->admin_notice && ( is_admin() && ! $this->is_doing_ajax_cron_or_xmlrpc() ) ) {
echo $this->admin_notice;
}
}
private function is_doing_ajax_cron_or_xmlrpc() {
return ( $this->is_doing_ajax() || $this->is_doing_cron() || $this->is_doing_xmlrpc() );
}
private function is_doing_ajax() {
return ( defined( 'DOING_AJAX' ) && DOING_AJAX );
}
private function is_doing_cron() {
return ( defined( 'DOING_CRON' ) && DOING_CRON );
}
private function is_doing_xmlrpc() {
return ( defined( 'XMLRPC_REQUEST' ) && XMLRPC_REQUEST );
}
public function extra_plugin_headers_action( array $extra_headers = array() ) {
$new_extra_header = array(
'PluginSlug' => 'Plugin Slug',
);
return array_merge( $new_extra_header, (array) $extra_headers );
}
/**
* @return WPML_Dependencies
*/
public static function get_instance() {
if ( null === self::$instance ) {
self::$instance = new WPML_Dependencies();
}
return self::$instance;
}
public function get_plugins() {
return $this->installed_plugins;
}
public function init_plugins_action() {
if ( $this->needs_validation() && is_admin() && ! $this->is_doing_ajax_cron_or_xmlrpc() ) {
$this->init_plugins();
$this->validate_plugins();
$this->flag_as_validated();
}
}
private function init_plugins() {
if ( ! $this->installed_plugins ) {
if ( ! function_exists( 'get_plugin_data' ) ) {
/** @noinspection PhpIncludeInspection */
include_once ABSPATH . '/wp-admin/includes/plugin.php';
}
if ( function_exists( 'get_plugin_data' ) ) {
$this->collect_data();
}
}
update_option( $this->data_key . 'installed_plugins', $this->installed_plugins );
}
private function init_bundle( array $active_plugins ) {
foreach ( $active_plugins as $plugin_file ) {
$filename = dirname( $plugin_file ) . '/wpml-dependencies.json';
if ( file_exists( $filename ) ) {
$data = file_get_contents( $filename );
$bundle = json_decode( $data, true );
$this->set_expected_versions( $bundle );
}
}
}
private function add_installed_plugin( $plugin ) {
$data = get_plugin_data( $plugin );
$plugin_dir = realpath( dirname( $plugin ) );
$wp_plugin_dir = realpath( WP_PLUGIN_DIR ) . DIRECTORY_SEPARATOR;
if ( false !== $plugin_dir && $wp_plugin_dir !== $plugin_dir ) {
$plugin_folder = str_replace( $wp_plugin_dir, '', $plugin_dir );
$plugin_slug = $this->guess_plugin_slug( $data, $plugin_folder );
if ( $this->is_valid_plugin( $plugin_slug ) ) {
$this->installed_plugins[ $plugin_slug ] = $data['Version'];
}
}
}
private function set_expected_versions( array $bundle ) {
foreach ( $bundle as $plugin => $version ) {
if ( ! array_key_exists( $plugin, $this->expected_versions ) ) {
$this->expected_versions[ $plugin ] = $version;
} else {
if ( version_compare( $this->expected_versions[ $plugin ], $version, '<' ) ) {
$this->expected_versions[ $plugin ] = $version;
}
}
}
}
private function guess_plugin_slug( $plugin_data, $plugin_folder ) {
$plugin_slug = null;
$plugin_slug = $plugin_folder;
if ( array_key_exists( 'Plugin Slug', $plugin_data ) && $plugin_data['Plugin Slug'] ) {
$plugin_slug = $plugin_data['Plugin Slug'];
}
return $plugin_slug;
}
private function validate_plugins() {
$validation_results = $this->get_plugins_validation();
$this->valid_plugins = array();
$this->invalid_plugins = array();
foreach ( $validation_results as $plugin => $validation_result ) {
if ( true === $validation_result ) {
$this->valid_plugins[] = $plugin;
} else {
$this->invalid_plugins[] = $plugin;
}
}
update_option( $this->data_key . 'valid_plugins', $this->valid_plugins );
update_option( $this->data_key . 'invalid_plugins', $this->invalid_plugins );
update_option( $this->data_key . 'expected_versions', $this->expected_versions );
}
public function get_plugins_validation() {
foreach ( $this->installed_plugins as $plugin => $version ) {
$this->current_product = $plugin;
if ( $this->is_valid_plugin() ) {
$this->current_version = $version;
$validation_result = $this->is_plugin_version_valid();
$this->validation_results[ $plugin ] = $validation_result;
}
}
return $this->validation_results;
}
private function is_valid_plugin( $product = false ) {
$result = false;
if ( ! $product ) {
$product = $this->current_product;
}
if ( $product ) {
$versions = $this->get_expected_versions();
$result = array_key_exists( $product, $versions );
}
return $result;
}
public function is_plugin_version_valid() {
$expected_version = $this->filter_version( $this->get_expected_product_version() );
return $expected_version ? version_compare( $this->filter_version( $this->current_version ), $expected_version, '>=' ) : null;
}
private function filter_version( $version ) {
return preg_replace( '#[^\d.].*#', '', $version );
}
public function get_expected_versions() {
return $this->expected_versions;
}
private function get_expected_product_version( $product = false ) {
$result = null;
if ( ! $product ) {
$product = $this->current_product;
}
if ( $product ) {
$versions = $this->get_expected_versions();
$result = isset( $versions[ $product ] ) ? $versions[ $product ] : null;
}
return $result;
}
private function maybe_init_admin_notice() {
$this->admin_notice = null;
$this->installed_plugins = get_option( $this->data_key . 'installed_plugins', [] );
$this->invalid_plugins = get_option( $this->data_key . 'invalid_plugins', [] );
$this->expected_versions = get_option( $this->data_key . 'expected_versions', [] );
$this->valid_plugins = get_option( $this->data_key . 'valid_plugins', [] );
if ( $this->has_invalid_plugins() ) {
$notice_paragraphs = array();
$notice_paragraphs[] = $this->get_invalid_plugins_report_header();
$notice_paragraphs[] = $this->get_invalid_plugins_report_list();
$notice_paragraphs[] = $this->get_invalid_plugins_report_footer();
$this->admin_notice = '<div class="error wpml-admin-notice">';
$this->admin_notice .= '<h3>' . __( 'WPML Update is Incomplete', 'sitepress' ) . '</h3>';
$this->admin_notice .= '<p>' . implode( '</p><p>', $notice_paragraphs ) . '</p>';
$this->admin_notice .= '</div>';
}
}
public function has_invalid_plugins() {
return count( $this->invalid_plugins );
}
private function get_invalid_plugins_report_header() {
if ( $this->has_valid_plugins() ) {
if ( count( $this->valid_plugins ) === 1 ) {
$paragraph = __( 'You are running updated %s, but the following component is not updated:', 'sitepress' );
$paragraph = sprintf( $paragraph, '<strong>' . $this->valid_plugins[0] . '</strong>' );
} else {
$paragraph = __( 'You are running updated %s and %s, but the following components are not updated:', 'sitepress' );
$first_valid_plugins = implode( ', ', array_slice( $this->valid_plugins, 0, - 1 ) );
$last_valid_plugin = array_slice( $this->valid_plugins, - 1 );
$paragraph = sprintf( $paragraph, '<strong>' . $first_valid_plugins . '</strong>', '<strong>' . $last_valid_plugin[0] . '</strong>' );
}
} else {
$paragraph = __( 'The following components are not updated:', 'sitepress' );
}
return $paragraph;
}
private function get_invalid_plugins_report_list() {
/* translators: %s: Version number */
$required_version = __( 'required version: %s', 'sitepress' );
$invalid_plugins_list = '<ul class="ul-disc">';
foreach ( $this->invalid_plugins as $invalid_plugin ) {
$plugin_name_html = '<li data-installed-version="' . $this->installed_plugins[ $invalid_plugin ] . '">';
$required_version_string = '';
if ( isset( $this->expected_versions[ $invalid_plugin ] ) ) {
$required_version_string = ' (' . sprintf( $required_version, $this->expected_versions[ $invalid_plugin ] ) . ')';
}
$plugin_name_html .= $invalid_plugin . $required_version_string;
$plugin_name_html .= '</li>';
$invalid_plugins_list .= $plugin_name_html;
}
$invalid_plugins_list .= '</ul>';
return $invalid_plugins_list;
}
private function get_invalid_plugins_report_footer() {
$wpml_org_url = '<a href="https://wpml.org/account/" title="WPML.org account">' . __( 'WPML.org account', 'sitepress' ) . '</a>';
$notice_paragraph = __( 'Your site will not work as it should in this configuration', 'sitepress' );
$notice_paragraph .= ' ';
$notice_paragraph .= __( 'Please update all components which you are using.', 'sitepress' );
$notice_paragraph .= ' ';
$notice_paragraph .= sprintf( __( 'For WPML components you can receive updates from your %s or automatically, after you register WPML.', 'sitepress' ), $wpml_org_url );
return $notice_paragraph;
}
private function has_valid_plugins() {
return $this->valid_plugins && count( $this->valid_plugins );
}
}

View File

@@ -0,0 +1,98 @@
<?php
/**
* WPML_PHP_Version_Check class file.
*
* @package WPML\LibDependencies
*/
if ( ! class_exists( 'WPML_PHP_Version_Check' ) ) {
/**
* Class WPML_PHP_Version_Check
*/
class WPML_PHP_Version_Check {
/**
* Required php version.
*
* @var string
*/
private $required_php_version;
/**
* Plugin name.
*
* @var string
*/
private $plugin_name;
/**
* Plugin file.
*
* @var string
*/
private $plugin_file;
/**
* Text domain.
*
* @var string
*/
private $text_domain;
/**
* WPML_PHP_Version_Check constructor.
*
* @param string $required_version Required php version.
* @param string $plugin_name Plugin name.
* @param string $plugin_file Plugin file.
* @param string $text_domain Text domain.
*/
public function __construct( $required_version, $plugin_name, $plugin_file, $text_domain ) {
$this->required_php_version = $required_version;
$this->plugin_name = $plugin_name;
$this->plugin_file = $plugin_file;
$this->text_domain = $text_domain;
}
/**
* Check php version.
*
* @return bool
*/
public function is_ok() {
if ( version_compare( $this->required_php_version, phpversion(), '>' ) ) {
add_action( 'admin_notices', array( $this, 'php_requirement_message' ) );
return false;
}
return true;
}
/**
* Show notice with php requirement.
*/
public function php_requirement_message() {
load_plugin_textdomain( $this->text_domain, false, dirname( plugin_basename( $this->plugin_file ) ) . '/locale' );
$errata_page_link = 'https://wpml.org/errata/parse-error-syntax-error-unexpected-t_class-and-other-errors-when-using-php-versions-older-than-5-6/';
// phpcs:disable WordPress.WP.I18n.NonSingularStringLiteralDomain
/* translators: 1: Current PHP version number, 2: Plugin version, 3: Minimum required PHP version number */
$message = sprintf( __( 'Your server is running PHP version %1$s but %2$s requires at least %3$s.', $this->text_domain ), phpversion(), $this->plugin_name, $this->required_php_version );
$message .= '<br>';
/* translators: Link to errata page */
$message .= sprintf( __( 'You can find version of the plugin suitable for your environment <a href="%s">here</a>.', $this->text_domain ), $errata_page_link );
// phpcs:enable WordPress.WP.I18n.NonSingularStringLiteralDomain
?>
<div class="message error">
<p>
<?php echo wp_kses_post( $message ); ?>
</p>
</div>
<?php
}
}
}