|
Server IP : 89.26.249.46 / Your IP : 216.73.217.75 Web Server : Apache System : Linux a.cp.cloudlink.pt 4.18.0-553.121.1.lve.el8.x86_64 #1 SMP Thu Apr 30 16:40:41 UTC 2026 x86_64 User : eticalga ( 1129) PHP Version : 8.3.31 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON Directory (0755) : /home/eticalga/www/files/plugins/acfml/classes/Strings/ |
| [ Home ] | [ C0mmand ] | [ Upload File ] |
|---|
<?php
namespace ACFML\Strings;
class TranslationJobHooks implements \IWPML_Action {
/**
* @var Factory $factory
*/
private $factory;
/**
* @param Factory $factory
*/
public function __construct( Factory $factory ) {
$this->factory = $factory;
}
/**
* @return void
*/
public function add_hooks() {
if ( self::isEnabled() ) {
add_filter( 'wpml_translation_package_by_language', [ $this, 'addStringsToTranslationPackage' ], 10, 3 );
add_action( 'wpml_translation_job_saved', [ $this, 'saveFieldGroupStringsTranslations' ], 10, 3 );
}
}
/**
* @return bool
*/
public static function isEnabled() {
return defined( 'ACFML_EXCLUDE_FIELD_GROUP_STRINGS_IN_POST_JOBS' ) &&
false === constant( 'ACFML_EXCLUDE_FIELD_GROUP_STRINGS_IN_POST_JOBS' );
}
/**
* @param int $translatedPostId
* @param array $fields
* @param \stdClass $job
*
* @return void
*/
public function saveFieldGroupStringsTranslations( $translatedPostId, $fields, $job ) {
$this->factory->createTranslationJobFilter()->saveTranslations( $fields, $job );
}
/**
* @param array $package
* @param \WP_Post|mixed $post
* @param string $targetLang
*
* @return array
*/
public function addStringsToTranslationPackage( $package, $post, $targetLang ) {
if ( $post instanceof \WP_Post ) {
return $this->factory->createTranslationJobFilter()->appendStrings( $package, $post, $targetLang ); // phpcs:ignore
}
return $package;
}
}