D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
home
/
ensad
/
www
/
wp-content
/
plugins
/
wpml-translation-management
/
inc
/
Filename :
wpml-private-actions.php
back
Copy
<?php use function \WPML\Container\make; use \WPML\FP\Obj; require_once WPML_TM_PATH . '/inc/translation-jobs/helpers/wpml-translation-job-helper.class.php'; require_once WPML_TM_PATH . '/inc/translation-jobs/helpers/wpml-translation-job-helper-with-api.class.php'; require_once WPML_TM_PATH . '/inc/translation-jobs/wpml-translation-jobs-collection.class.php'; require_once WPML_TM_PATH . '/inc/translation-jobs/helpers/wpml-save-translation-data-action.class.php'; function wpml_tm_save_job_fields_from_post( $job_id ) { $job = new WPML_Post_Translation_Job( $job_id ); $job->update_fields_from_post(); } add_action( 'wpml_save_job_fields_from_post', 'wpml_tm_save_job_fields_from_post', 10, 1 ); /** * @param array $data * @param bool $redirect_after_saving * * @return bool */ function wpml_tm_save_data( array $data, $redirect_after_saving = true ) { $job_factory = wpml_tm_load_job_factory(); $save_factory = new WPML_TM_Job_Action_Factory( $job_factory ); $save_data_action = $save_factory->save_action( $data ); $result = $save_data_action->save_translation(); $redirect_target = $redirect_after_saving ? $save_data_action->get_redirect_target() : false; if ( (bool) $redirect_target === true ) { wp_redirect( $redirect_target ); } return $result; } add_action( 'wpml_save_translation_data', 'wpml_tm_save_data', 10, 1 ); function wpml_tm_add_translation_job( $rid, $translator_id, $translation_package, $batch_options ) { $helper = new WPML_TM_Action_Helper(); $helper->add_translation_job( $rid, $translator_id, $translation_package, $batch_options ); } add_action( 'wpml_add_translation_job', 'wpml_tm_add_translation_job', 10, 4 ); require_once dirname( __FILE__ ) . '/wpml-private-filters.php'; /** * @param int $job_id */ function wpml_set_job_translated_term_values( $job_id ) { global $sitepress; $delete = $sitepress->get_setting( 'tm_block_retranslating_terms' ); $job_object = new WPML_Post_Translation_Job( $job_id ); $job_object->load_terms_from_post_into_job( $delete ); } add_action( 'wpml_added_local_translation_job', 'wpml_set_job_translated_term_values' ); function wpml_tm_save_post( $post_id, $post, $force_set_status = false ) { global $wpdb, $wpml_post_translations, $wpml_term_translations; if ( false === $force_set_status && get_post_meta( $post_id, '_icl_lang_duplicate_of', true ) ) { $force_set_status = ICL_TM_DUPLICATE; } require_once WPML_TM_PATH . '/inc/actions/wpml-tm-post-actions.class.php'; $action_helper = new WPML_TM_Action_Helper(); $blog_translators = wpml_tm_load_blog_translators(); $tm_records = new WPML_TM_Records( $wpdb, $wpml_post_translations, $wpml_term_translations ); $save_post_action = new WPML_TM_Post_Actions( $action_helper, $blog_translators, $tm_records ); if ( 'revision' === $post->post_type || 'auto-draft' === $post->post_status || isset( $_POST['autosave'] ) ) { return; } $save_post_action->save_post_actions( $post_id, $post, $force_set_status ); } add_action( 'wpml_tm_save_post', 'wpml_tm_save_post', 10, 3 ); function wpml_tm_assign_translation_job( $job_id, $translator_id, $service = 'local', $type ) { global $wpml_translation_job_factory; $job = $type === 'string' ? new WPML_String_Translation_Job( $job_id ) : $wpml_translation_job_factory->get_translation_job( $job_id, false, 0, true ); if ( $job ) { return $job->assign_to( $translator_id, $service ); } return null; } add_action( 'wpml_tm_assign_translation_job', 'wpml_tm_assign_translation_job', 10, 4 ); /** * Potentially handles the request to add strings to the translation basket, * triggered by String Translation. */ function wpml_tm_add_strings_to_basket() { if ( Obj::prop( 'icl_st_action', $_POST ) === 'send_strings' && wpml_is_action_authenticated( 'icl-string-translation' ) ) { WPML_TM_String_Basket_Request::send_to_basket( $_POST, [ TranslationProxy_Basket::class, 'add_strings_to_basket' ] ); } } if ( is_admin() ) { add_action( 'init', 'wpml_tm_add_strings_to_basket' ); }