PATH:
var
/
www
/
clients
/
client1
/
web1
/
web
/
wp-content
/
sitepress-multilingual-cms
/
classes
<?php use WPML\TM\ATE\Review\ReviewStatus; use WPML\FP\Obj; class WPML_TM_API { /** @var TranslationManagement */ private $TranslationManagement; /** @var WPML_TM_Blog_Translators $blog_translators */ private $blog_translators; /** * @var mixed[] */ private $translation_statuses; /** * WPML_TM_API constructor. * * @param WPML_TM_Blog_Translators $blog_translators * @param TranslationManagement $TranslationManagement */ public function __construct( &$blog_translators, &$TranslationManagement ) { $this->blog_translators = &$blog_translators; $this->TranslationManagement = &$TranslationManagement; $this->translation_statuses = [ ICL_TM_NOT_TRANSLATED => __( 'Not translated', 'wpml-translation-management' ), ICL_TM_WAITING_FOR_TRANSLATOR => __( 'Waiting for translator', 'wpml-translation-management' ), ICL_TM_IN_BASKET => __( 'In basket', 'wpml-translation-management' ), ICL_TM_IN_PROGRESS => __( 'In progress', 'wpml-translation-management' ), ICL_TM_DUPLICATE => __( 'Duplicate', 'wpml-translation-management' ), ICL_TM_COMPLETE => __( 'Complete', 'wpml-translation-management' ), ICL_TM_NEEDS_UPDATE => __( 'needs update', 'wpml-translation-management' ), ICL_TM_ATE_NEEDS_RETRY => __( 'In progress (connecting)', 'wpml-translation-management' ), ]; } public function get_translation_status_label( $status ) { return Obj::propOr( null, $status, $this->translation_statuses ); } public function init_hooks() { add_filter( 'wpml_is_translator', array( $this, 'is_translator_filter' ), 10, 3 ); add_filter( 'wpml_translator_languages_pairs', array( $this, 'translator_languages_pairs_filter' ), 10, 2 ); add_action( 'wpml_edit_translator', array( $this, 'edit_translator_action' ), 10, 2 ); } /** * @param bool $default * @param int|WP_User $user * @param array $args * * @return bool */ public function is_translator_filter( $default, $user, $args ) { $result = $default; $user_id = $this->get_user_id( $user ); if ( is_numeric( $user_id ) ) { $result = $this->blog_translators->is_translator( $user_id, $args ); } return $result; } public function edit_translator_action( $user, $language_pairs ) { $user_id = $this->get_user_id( $user ); if ( is_numeric( $user_id ) ) { $this->edit_translator( $user_id, $language_pairs ); } } /** * @param int $user_id * @param array $language_pairs */ private function edit_translator( $user_id, $language_pairs ) { global $wpdb; $user = new WP_User( $user_id ); if ( empty( $language_pairs ) ) { $user->remove_cap( WPML_Translator_Role::CAPABILITY ); } elseif ( ! $user->has_cap( WPML_Translator_Role::CAPABILITY ) ) { $user->add_cap( WPML_Translator_Role::CAPABILITY ); } $language_pair_records = new WPML_Language_Pair_Records( $wpdb, new WPML_Language_Records( $wpdb ) ); $language_pair_records->store( $user_id, $language_pairs ); } public function translator_languages_pairs_filter( $default, $user ) { $result = $default; $user_id = $this->get_user_id( $user ); if ( is_numeric( $user_id ) ) { if ( $this->blog_translators->is_translator( $user_id ) ) { $result = $this->blog_translators->get_language_pairs( $user_id ); } } return $result; } /** * @param $user * * @return int */ private function get_user_id( $user ) { $user_id = $user; if ( is_a( $user, 'WP_User' ) ) { $user_id = $user->ID; return $user_id; } return $user_id; } }
[+]
wpml-wp
[+]
ajax
[-] class-wpml-tm-translators-dropdown.php
[edit]
[+]
translation-priorities
[-] class-wpml-tm-promotions.php
[edit]
[+]
hooks
[+]
ICL-20-migration
[+]
templates
[+]
action-filter-loader
[-] class-wpml-translation-proxy-api.php
[edit]
[+]
wpml-st
[+]
utilities
[-] class-wpml-tm-translated-field.php
[edit]
[+]
requirements
[+]
sticky-posts
[-] class-wpml-tm-page.php
[edit]
[+]
icl
[+]
display-as-translated
[+]
custom-field-translation
[+]
language
[+]
ATE
[+]
shortcodes
[+]
translate_link_targets
[+]
core-abstract-classes
[+]
full-site-editing
[+]
settings
[-] class-wpml-file.php
[edit]
[+]
xliff
[+]
reset
[+]
REST-hooks
[+]
comments
[+]
plugins
[+]
templating
[+]
container
[+]
taxonomy
[+]
cookie
[-] class-wpml-tm-requirements.php
[edit]
[+]
translation-dashboard
[+]
helpers
[+]
translation-feedback
[+]
admin-language-switcher
[-] class-wpml-tm-troubleshooting-clear-ts.php
[edit]
[+]
jobs
[+]
compatibility
[+]
wp-core-hooks
[+]
post-edit-screen
[-] class-wpml-tm-troubleshooting-clear-ts-ui.php
[edit]
[+]
translation-jobs
[+]
logging
[+]
roles
[+]
media
[-] class-wpml-active-plugin-provider.php
[edit]
[+]
media-translation
[-] class-wpml-config-update.php
[edit]
[+]
seo
[+]
options
[+]
Installer
[-] class-wpml-tm-ajax-factory-2.php
[edit]
[+]
automatic-translation
[+]
troubleshoot
[+]
records
[-] class-wpml-translate-independently.php
[edit]
[+]
abstract
[-] class-wpml-tm-resources-factory.php
[edit]
[+]
post-types
[+]
wp-cli
[+]
translation-proxy
[-] class-wpml-tm-loader.php
[edit]
[-] class-wpml-config-update-integrator.php
[edit]
[-] class-wpml-theme-localization-type.php
[edit]
[+]
taxonomy-term-translation
[+]
setup
[+]
language-switcher
[+]
translation-mode
[+]
jobs-deadline
[+]
database-queries
[+]
utils
[+]
translation-basket
[-] ISitePress.php
[edit]
[-] class-wpml-current-screen.php
[edit]
[-] class-wpml-tm-ajax-factory.php
[edit]
[+]
admin-bar
[+]
canonicals
[+]
custom-xml-config
[-] class-wpml-db-chunk.php
[edit]
[+]
url-handling
[+]
admin-resources
[+]
theme-plugin-localization
[+]
ui-elements
[+]
languages
[+]
wizard
[-] LanguageNegotiation.php
[edit]
[-] class-wpml-browser-redirect.php
[edit]
[+]
menu
[-] class-wpml-mo-file-search.php
[edit]
[+]
query-filtering
[+]
translation-management
[+]
filters
[-] class-wpml-xmlrpc.php
[edit]
[-] class-wpml-site-id.php
[edit]
[+]
block-editor
[+]
icl-to-ate-migration
[+]
translations
[+]
user-language
[+]
..
[+]
menu-elements
[+]
translation-batch
[-] class-wpml-tm-api.php
[edit]
[-] class-wpml-translation-management.php
[edit]
[-] class-wpml-translation-job-factory.php
[edit]
[+]
xml-config
[+]
REST
[+]
editor
[+]
admin-menu
[+]
localization
[+]
tp-client
[+]
translation-roles
[-] Geolocalization.php
[edit]
[+]
wp
[+]
API
[+]
twig-extensions
[+]
troubleshooting
[+]
privacy
[+]
user
[-] class-wpml-tm-service-activation-ajax.php
[edit]
[+]
widgets
[+]
super-globals
[+]
emails
[+]
words-count
[+]
support
[+]
post-translation
[+]
browser-language-redirect
[+]
request-handling
[+]
notices
[+]
upgrade