HEX
Server: LiteSpeed
System: Linux server315.web-hosting.com 4.18.0-553.54.1.lve.el8.x86_64 #1 SMP Wed Jun 4 13:01:13 UTC 2025 x86_64
User: globfdxw (6114)
PHP: 8.1.34
Disabled: NONE
Upload Files
File: //home/globfdxw/public_html/wp-content/plugins/acfml/classes/Strings/OptionsPageHooks.php
<?php

namespace ACFML\Strings;

use ACFML\Strings\Helper\ContentTypeLabels;
use WPML\FP\Obj;

class OptionsPageHooks implements \IWPML_Backend_Action, \IWPML_Frontend_Action, \IWPML_DIC_Action {

	/**
	 * @var Factory $factory
	 */
	private $factory;

	/**
	 * @var Translator $translator
	 */
	private $translator;

	/**
	 * @param Factory    $factory
	 * @param Translator $translator
	 */
	public function __construct( Factory $factory, Translator $translator ) {
		$this->factory    = $factory;
		$this->translator = $translator;
	}

	public function add_hooks() {
		add_action( 'acf/update_ui_options_page', [ $this, 'register' ] );
		add_filter( 'acf/validate_options_page', [ $this, 'translate' ] );
		add_filter( 'acf/get_options_page', [ $this, 'translateMenuItems' ] );
		add_action( 'acf/delete_ui_options_page', [ $this, 'delete' ] );
	}

	/**
	 * @param array $optionsPageData
	 */
	public function register( $optionsPageData ) {
		$this->translator->registerOptionsPage( $optionsPageData );
	}

	/**
	 * @param  array $optionsPageData
	 *
	 * @return array
	 */
	public function translate( $optionsPageData ) { // phpcs:disable WordPress.WP.I18n
		return $this->translator->translateOptionsPage( $optionsPageData );
	}

	/**
	 * @param  array $optionsPageData
	 *
	 * @return array
	 */
	public function translateMenuItems( $optionsPageData ) {
		if ( ! doing_action( 'admin_menu' ) ) {
			return $optionsPageData;
		}

		if ( ! Obj::prop( 'menu_title', $optionsPageData ) ) {
			return $optionsPageData;
		}

		return array_merge(
			$optionsPageData,
			$this->translator->translateOptionsPage(
				[
					'menu_slug'  => $optionsPageData['menu_slug'],
					'menu_title' => $optionsPageData['menu_title'],
				]
			)
		);
	}

	/**
	 * @param array $optionsPageData
	 */
	public function delete( $optionsPageData ) {
		$this->factory->createPackage( $optionsPageData['menu_slug'], Package::OPTION_PAGE_PACKAGE_KIND_SLUG )->delete();
	}

}