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/Tools/LocalUI.php
<?php

namespace ACFML\Tools;

use WPML\FP\Obj;

class LocalUI {

	/**
	 * @var string name
	 */
	public $name = 'acfml-local-settings';

	/**
	 * Title of the ACF/ACFML Tool page.
	 *
	 * @var string title
	 */
	public $title = '';

	public function __construct() {
		$this->title = __( 'Sync Translation Preferences for Local Fields', 'acfml' );
	}

	public function initialize() {
	}

	public function load() {
	}

	public function html() {
		?>
		<p>
		<?php
		echo sprintf(
			/* translators: %1$s, %2$s, %3$s and %4$s are placeholders for two <a> link tags. */
			esc_html__( 'ACF allows you to %1$sregister fields via PHP%2$s or %3$ssave field settings as JSON files%4$s and WPML integrates with these features.', 'acfml' ),
			'<a href="https://www.advancedcustomfields.com/resources/register-fields-via-php/" target="_blank">',
			'</a>',
			'<a href="https://www.advancedcustomfields.com/resources/local-json/" target="_blank">',
			'</a>'
		);
		echo '<br />';
		esc_html_e( 'If you select this option, ACF Multilingual will scan your field groups stored in PHP files and the "acf-json" directory. It will then sync any changes to translation preferences.', 'acfml' );
		echo '<br />';
		esc_html_e( "This can harm the site's performance if you have a significant number of fields stored this way.", 'acfml' );
		?>
		</p>
		<div class="acf-fields">
			<div class="acf-field">
				<ul class="acf-checkbox acf-bl">
					<li>
						<label>
							<input type="checkbox" name="<?php echo esc_attr( LocalSettings::SCAN_LOCAL_FILES ); ?>" value="1" <?php checked( LocalSettings::isScanModeEnabled() ); ?> />
							<?php esc_html_e( 'Scan local fields for changes to translation preferences.', 'acfml' ); ?>
						</label>
					</li>
				</ul>
				<?php wp_nonce_field( 'nonce_' . LocalSettings::SCAN_LOCAL_FILES, 'nonce_' . LocalSettings::SCAN_LOCAL_FILES ); ?>
			</div>
		</div>

		<p class="acf-submit">
			<input type="submit" name="submit-scan-mode" class="button button-primary" value="<?php esc_attr_e( 'Save', 'acfml' ); ?>" />
		</p>
		<?php
	}

	private static function getNonceName() {
		return 'nonce_' . LocalSettings::SCAN_LOCAL_FILES;
	}

	public function submit() {
		// phpcs:ignore WordPress.CSRF.NonceVerification.NoNonceVerification,WordPress.VIP.SuperGlobalInputUsage.AccessDetected
		$isSavingScanMode = isset( $_POST['submit-scan-mode'] );
		// phpcs:ignore WordPress.CSRF.NonceVerification.NoNonceVerification,WordPress.VIP.SuperGlobalInputUsage.AccessDetected
		$nonceValue = sanitize_key( Obj::prop( self::getNonceName(), $_POST ) );

		if ( $isSavingScanMode && wp_verify_nonce( $nonceValue, self::getNonceName() ) ) {
			// phpcs:ignore WordPress.VIP.SuperGlobalInputUsage.AccessDetected
			LocalSettings::enableScanMode( (bool) Obj::prop( LocalSettings::SCAN_LOCAL_FILES, $_POST ) );
			acf_add_admin_notice( __( 'Translation preferences scanning options saved.', 'acfml' ), 'success' );
		}
	}
}