HEX
Server: Apache
System: Linux beta.alfanet.ee 4.18.0-553.54.1.lve.el8.x86_64 #1 SMP Wed Jun 4 13:01:13 UTC 2025 x86_64
User: busines1 (1252)
PHP: 8.2.29
Disabled: NONE
Upload Files
File: /home-ssd1/busines1/public_html/wp-content/plugins/acfml/classes/FieldGroup/ModeDefaults.php
<?php

namespace ACFML\FieldGroup;

use WPML\FP\Obj;
use function WPML\FP\curryN;

class ModeDefaults {

	const IGNORE    = WPML_IGNORE_CUSTOM_FIELD;
	const COPY      = WPML_COPY_CUSTOM_FIELD;
	const COPY_ONCE = WPML_COPY_ONCE_CUSTOM_FIELD;
	const TRANSLATE = WPML_TRANSLATE_CUSTOM_FIELD;

	const MAP = [
		// Basic
		'text' => [
			Mode::TRANSLATION  => self::TRANSLATE,
			Mode::LOCALIZATION => self::TRANSLATE,
		],
		'textarea' => [
			Mode::TRANSLATION  => self::TRANSLATE,
			Mode::LOCALIZATION => self::TRANSLATE,
		],
		'number' => [
			Mode::TRANSLATION  => self::COPY,
			Mode::LOCALIZATION => self::COPY_ONCE,
		],
		'range' => [
			Mode::TRANSLATION  => self::COPY,
			Mode::LOCALIZATION => self::COPY_ONCE,
		],
		'email' => [
			Mode::TRANSLATION  => self::COPY,
			Mode::LOCALIZATION => self::COPY_ONCE,
		],
		'url' => [
			Mode::TRANSLATION  => self::COPY,
			Mode::LOCALIZATION => self::COPY_ONCE,
		],
		'password' => [
			Mode::TRANSLATION  => self::COPY,
			Mode::LOCALIZATION => self::COPY_ONCE,
		],
		// Content
		'image' => [
			Mode::TRANSLATION  => self::COPY,
			Mode::LOCALIZATION => self::COPY_ONCE,
		],
		'file' => [
			Mode::TRANSLATION  => self::COPY,
			Mode::LOCALIZATION => self::COPY_ONCE,
		],
		'wysiwyg' => [
			Mode::TRANSLATION  => self::TRANSLATE,
			Mode::LOCALIZATION => self::TRANSLATE,
		],
		'oembed' => [
			Mode::TRANSLATION  => self::COPY,
			Mode::LOCALIZATION => self::COPY_ONCE,
		],
		'gallery' => [
			Mode::TRANSLATION  => self::COPY,
			Mode::LOCALIZATION => self::COPY_ONCE,
		],
		// Choice
		'select' => [
			Mode::TRANSLATION  => self::COPY,
			Mode::LOCALIZATION => self::COPY_ONCE,
		],
		'checkbox' => [
			Mode::TRANSLATION  => self::COPY,
			Mode::LOCALIZATION => self::COPY_ONCE,
		],
		'radio' => [
			Mode::TRANSLATION  => self::COPY,
			Mode::LOCALIZATION => self::COPY_ONCE,
		],
		'button_group' => [
			Mode::TRANSLATION  => self::COPY,
			Mode::LOCALIZATION => self::COPY_ONCE,
		],
		'true_false' => [
			Mode::TRANSLATION  => self::COPY,
			Mode::LOCALIZATION => self::COPY_ONCE,
		],
		// jQuery
		'google_map' => [
			Mode::TRANSLATION  => self::COPY,
			Mode::LOCALIZATION => self::COPY_ONCE,
		],
		'date_picker' => [
			Mode::TRANSLATION  => self::COPY,
			Mode::LOCALIZATION => self::COPY_ONCE,
		],
		'date_time_picker' => [
			Mode::TRANSLATION  => self::COPY,
			Mode::LOCALIZATION => self::COPY_ONCE,
		],
		'time_picker' => [
			Mode::TRANSLATION  => self::COPY,
			Mode::LOCALIZATION => self::COPY_ONCE,
		],
		'color_picker' => [
			Mode::TRANSLATION  => self::COPY,
			Mode::LOCALIZATION => self::COPY_ONCE,
		],
		// Layout
		'message' => [
			Mode::TRANSLATION  => self::TRANSLATE,
			Mode::LOCALIZATION => self::TRANSLATE,
		],
		'accordion' => [
			Mode::TRANSLATION  => self::COPY,
			Mode::LOCALIZATION => self::COPY_ONCE,
		],
		'tab' => [
			Mode::TRANSLATION  => self::COPY,
			Mode::LOCALIZATION => self::COPY_ONCE,
		],
		'group' => [
			Mode::TRANSLATION  => self::COPY,
			Mode::LOCALIZATION => self::COPY_ONCE,
		],
		'repeater' => [
			Mode::TRANSLATION  => self::COPY,
			Mode::LOCALIZATION => self::COPY_ONCE,
		],
		'flexible_content' => [
			Mode::TRANSLATION  => self::COPY,
			Mode::LOCALIZATION => self::COPY_ONCE,
		],
		'clone' => [
			Mode::TRANSLATION  => self::COPY,
			Mode::LOCALIZATION => self::COPY_ONCE,
		],
		// Relational
		'link' => [
			Mode::TRANSLATION  => self::COPY,
			Mode::LOCALIZATION => self::COPY_ONCE,
		],
		'post_object' => [
			Mode::TRANSLATION  => self::COPY,
			Mode::LOCALIZATION => self::COPY_ONCE,
		],
		'page_link' => [
			Mode::TRANSLATION  => self::COPY,
			Mode::LOCALIZATION => self::COPY_ONCE,
		],
		'relationship' => [
			Mode::TRANSLATION  => self::COPY,
			Mode::LOCALIZATION => self::COPY_ONCE,
		],
		'taxonomy' => [
			Mode::TRANSLATION  => self::COPY,
			Mode::LOCALIZATION => self::COPY_ONCE,
		],
		'user' => [
			Mode::TRANSLATION  => self::COPY,
			Mode::LOCALIZATION => self::COPY_ONCE,
		],
	];

	/**
	 * @param string $groupMode
	 * @param array  $field
	 *
	 * @return callable|int
	 */
	public static function get( $groupMode = null, $field = null ) {
		$get = curryN( 2, function( $groupMode, $field ) {
			$fieldTranslationPreference = (int) Obj::pathOr( self::TRANSLATE, [ Obj::prop( 'type', $field ), $groupMode ], self::MAP );

			/**
			 * This filter allows to override the default translation preference
			 * based on the field group mode.
			 *
			 * @param int    $fieldTranslationPreference The translation preference (1, 2, 3).
			 * @param string $groupMode                  The field group mode.
			 * @param array  $field                      The ACF field.
			 *
			 * @since 2.0.0
			 *
			 */
			return (int) apply_filters( 'acfml_field_group_mode_field_translation_preference', $fieldTranslationPreference, $groupMode, $field );
		} );

		return call_user_func_array( $get, func_get_args() );
	}
}