function init()
 {
     global $sitepress;
     $this->init_comments_synchronization();
     $this->init_default_settings();
     $this->init_current_translator();
     if (!$this->current_translator) {
         return;
     }
     WPML_Config::load_config();
     if (isset($_POST['icl_tm_action'])) {
         $this->process_request($_POST);
     } elseif (isset($_GET['icl_tm_action'])) {
         $this->process_request($_GET);
     }
     if (is_admin()) {
         if ($GLOBALS['pagenow'] == 'edit.php') {
             // use standard WP admin notices
             add_action('admin_notices', array($this, 'show_messages'));
         } else {
             // use custom WP admin notices
             add_action('icl_tm_messages', array($this, 'show_messages'));
         }
         if ($this->current_page_is('translations-queue.php') && isset($_GET['job_id'])) {
             add_filter('admin_head', array($this, '_show_tinyMCE'));
         }
         if (isset($this->settings['doc_translation_method']) && $this->settings['doc_translation_method'] < 0) {
             if ($this->current_subpage_is('mcsetup') && isset($_GET['src']) && $_GET['src'] == 'notice') {
                 $this->settings['doc_translation_method'] = ICL_TM_TMETHOD_MANUAL;
                 $this->save_settings();
             } else {
                 add_action('admin_notices', array($this, '_translation_method_notice'));
             }
         }
         if (defined('WPML_TM_VERSION') && $this->current_page_is(WPML_TM_FOLDER . '/menu/main.php', 'translators')) {
             $lang_status = TranslationProxy_Translator::get_icl_translator_status();
             if (!empty($lang_status)) {
                 $sitepress->save_settings($lang_status);
             }
         }
         // default settings
         if (empty($this->settings['doc_translation_method']) || !defined('WPML_TM_VERSION')) {
             $this->settings['doc_translation_method'] = ICL_TM_TMETHOD_MANUAL;
         }
     }
 }
 function create_icl_account()
 {
     global $sitepress;
     $site_id = false;
     $access_key = false;
     $user = $this->create_user_account();
     require_once ICL_PLUGIN_PATH . '/lib/icl_api.php';
     $icl_query = new ICanLocalizeQuery();
     list($site_id, $access_key) = $icl_query->createAccount($user, TA_URL_ENDPOINT);
     if (!$site_id) {
         $user['pickup_type'] = ICL_PRO_TRANSLATION_PICKUP_POLLING;
         list($site_id, $access_key) = $icl_query->createAccount($user, TA_URL_ENDPOINT);
     }
     if ($site_id) {
         if ($user['pickup_type'] == ICL_PRO_TRANSLATION_PICKUP_POLLING) {
             $sitepress->set_setting('translation_pickup_method', ICL_PRO_TRANSLATION_PICKUP_POLLING);
         }
         $icl_query = new ICanLocalizeQuery($site_id, $access_key);
         $website_details = $icl_query->get_website_details(TA_URL_ENDPOINT);
         TranslationProxy_Translator::get_icl_translator_status($website_details);
     }
     return array($site_id, $access_key);
 }
 private function service_has_accepted_translators()
 {
     $result = false;
     $icl_data = TranslationProxy_Translator::get_icl_translator_status();
     if (isset($icl_data['icl_lang_status']) && is_array($icl_data['icl_lang_status'])) {
         foreach ($icl_data['icl_lang_status'] as $translator) {
             if (isset($translator['contract_id']) && $translator['contract_id'] != 0) {
                 $result = true;
                 break;
             }
         }
     }
     return $result;
 }
 /**
  * Handles the display of notices in the TM translators tab
  */
 private function handle_notices()
 {
     global $sitepress;
     $lang_status = TranslationProxy_Translator::get_icl_translator_status();
     if (!empty($lang_status)) {
         $sitepress->save_settings($lang_status);
     }
     if (!defined('DOING_AJAX')) {
         $this->service_incomplete_local_jobs_notice();
         $this->service_authentication_notice();
     }
 }
 /**
  * Return translator status array.
  *
  * @param bool $force
  *
  * @return array
  */
 public function get_icl_translator_status($force = false)
 {
     return TranslationProxy_Translator::get_icl_translator_status($force);
 }
 public function get_icl_translators()
 {
     remove_filter('otgs_translation_get_services', 'filter_tp_services');
     $icl_data = TranslationProxy_Translator::get_icl_translator_status();
     return isset($icl_data['icl_lang_status']) ? $icl_data['icl_lang_status'] : array();
 }