Files
doitinpoland.com/wp-content/plugins/sitepress-multilingual-cms/addons/wpml-page-builders/classes/Shared/tm/class-wpml-tm-page-builders-hooks.php
2023-09-12 21:41:04 +02:00

115 lines
3.1 KiB
PHP

<?php
class WPML_TM_Page_Builders_Hooks {
/* @var WPML_TM_Page_Builders $worker */
private $worker;
/** @var SitePress $sitepress */
private $sitepress;
/**
* WPML_TM_Page_Builders constructor.
*
* @param WPML_TM_Page_Builders $worker
*/
public function __construct( WPML_TM_Page_Builders $worker = null, SitePress $sitepress ) {
$this->worker = $worker;
$this->sitepress = $sitepress;
}
public function init_hooks() {
add_filter( 'wpml_tm_translation_job_data', array( $this, 'translation_job_data_filter' ), 10, 2 );
add_action( 'wpml_pro_translation_completed', array( $this, 'pro_translation_completed_action' ), 10, 3 );
add_filter( 'wpml_tm_adjust_translation_fields', array( $this, 'adjust_translation_fields_filter' ), 10, 2 );
add_filter( 'wpml_tm_job_layout', array( $this, 'job_layout_filter' ) );
add_filter( 'wpml_link_to_translation', array( $this, 'link_to_translation_filter' ), 20, 4 );
add_filter( 'wpml_get_translatable_types', array( $this, 'remove_shortcode_strings_type_filter' ), 11);
}
/**
* @param array $translation_package
* @param mixed $post
*
* @return array
*/
public function translation_job_data_filter( array $translation_package, $post ) {
$worker = $this->get_worker();
return $worker->translation_job_data_filter( $translation_package, $post );
}
/**
* @param int $new_post_id
* @param array $fields
* @param stdClass $job
*/
public function pro_translation_completed_action( $new_post_id, array $fields, stdClass $job ) {
$worker = $this->get_worker();
$worker->pro_translation_completed_action( $new_post_id, $fields, $job );
}
/**
* Filter translation fields.
*
* @param array $fields Translation fields.
* @param stdClass $job Translation job.
*
* @return array
*/
public function adjust_translation_fields_filter( array $fields, $job ) {
$worker = $this->get_worker();
$fields = $worker->adjust_translation_fields_filter( $fields, $job );
return $fields;
}
/**
* @param array $layout
*
* @return array
*/
public function job_layout_filter( array $layout ) {
$worker = $this->get_worker();
return $worker->job_layout_filter( $layout );
}
/**
* @param string $link
* @param int $post_id
* @param string $lang
* @param int $trid
*
* @return string
*/
public function link_to_translation_filter( $link, $post_id, $lang, $trid ) {
$worker = $this->get_worker();
return $worker->link_to_translation_filter( $link, $post_id, $lang, $trid );
}
/**
* Remove "Page Builder ShortCode Strings" from translation dashboard filters
*
* @param array $types
*
* @return mixed
*/
public function remove_shortcode_strings_type_filter( $types ) {
if ( array_key_exists( 'page-builder-shortcode-strings', $types ) ) {
unset( $types['page-builder-shortcode-strings'] );
}
return $types;
}
/**
* @return WPML_TM_Page_Builders
*/
private function get_worker() {
if ( ! $this->worker ) {
$this->worker = new WPML_TM_Page_Builders( $this->sitepress );
}
return $this->worker;
}
}