public function send_basket_items() { $basket_name = filter_input(INPUT_POST, 'basket_name', FILTER_SANITIZE_STRING); if ($basket_name) { TranslationProxy_Basket::set_basket_name($basket_name); } $basket = TranslationProxy_Basket::get_basket(); $basket_items_types = TranslationProxy_Basket::get_basket_items_types(); if (!$basket) { $message_content = __('No items found in basket', 'sitepress'); } else { $total_count = 0; $message_content_details = ''; foreach ($basket_items_types as $item_type_name => $item_type) { if (isset($basket[$item_type_name])) { $count_item_type = count($basket[$item_type_name]); $total_count += $count_item_type; $message_content_details .= '<br/>'; $message_content_details .= '- ' . $item_type_name . '(s): ' . $count_item_type; } } $message_content = sprintf(__('%s items in basket:', 'sitepress'), $total_count); $message_content .= $message_content_details; } $container = $message_content; $result = array('message' => $container, 'basket' => $basket, 'allowed_item_types' => array_keys($basket_items_types)); wp_send_json_success($result); }
function set_name($basket_name) { TranslationProxy_Basket::set_basket_name($basket_name); }
/** * Sends all jobs from basket in batch mode to translation proxy * * @param array $data POST data * * @return bool Returns false in case of errors (read from TranslationManagement::get_messages('error') to get errors details) */ function send_all_jobs($data) { if (!isset($data) || !is_array($data)) { return false; } // 1. get wp_option with basket $basket_name = TranslationProxy_Basket::get_basket_name(); if (!$basket_name) { $basket_name = isset($data['basket_name']) ? $data['basket_name'] : false; if ($basket_name) { TranslationProxy_Basket::set_basket_name($basket_name); } } $this->set_translation_jobs_basket($data); // check if we have local and remote translators $translators = isset($data['translators']) ? $data['translators'] : array(); // find all target languages for remote service (it is required to create proper batch in translation proxy) $this->set_remote_target_languages($translators); // save information about target languages for remote service TranslationProxy_Basket::set_remote_target_languages($this->remote_target_languages); $basket_items_types = TranslationProxy_Basket::get_basket_items_types(); foreach ($basket_items_types as $item_type_name => $item_type) { $type_basket_items = array(); if (isset($this->translation_jobs_basket[$item_type_name])) { $type_basket_items = $this->translation_jobs_basket[$item_type_name]; } do_action('wpml_tm_send_' . $item_type_name . '_jobs', $item_type_name, $item_type, $type_basket_items, $translators, $basket_name); } // check if there were no errors return !$this->messages_by_type('error'); }
/** * @param bool $source_language * @param $target_languages * * @internal param bool $name * @return bool|TranslationProxy_Batch */ public function create_batch_job($source_language, $target_languages) { $batch_name = TranslationProxy_Basket::get_basket_name(); $extra_fields = TranslationProxy_Basket::get_basket_extra_fields(); if (!$source_language) { $source_language = TranslationProxy_Basket::get_source_language(); } if (!$target_languages) { $target_languages = TranslationProxy_Basket::get_remote_target_languages(); } if (!$source_language || !$target_languages) { return false; } if (!$batch_name) { $batch_name = sprintf(__('%s: WPML Translation Jobs', 'wpml-translation-management'), get_option('blogname')); } TranslationProxy_Basket::set_basket_name($batch_name); $params = array("api_version" => TranslationProxy_Api::API_VERSION, "project_id" => $this->id, "accesskey" => $this->access_key, 'batch' => array('source_language' => $source_language, 'target_languages' => $target_languages, 'name' => $batch_name)); if ($extra_fields) { $params['extra_fields'] = $extra_fields; } try { $response = TranslationProxy_Api::proxy_request('/projects/{project_id}/batches.json', $params, 'POST', false); $batch = false; if ($response) { $batch = $response->batch; TranslationProxy_Basket::set_batch_data($batch); } return $batch; } catch (Exception $ex) { $this->add_error($ex->getMessage()); return false; } }