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/Notice/Links.php
<?php

namespace ACFML\Notice;

use WPML\FP\Obj;
use WPML\FP\Str;

class Links {

	// ACFML
	const DOC_ACFML_MAIN   = 'https://wpml.org/documentation/related-projects/translate-sites-built-with-acf/';
	const DOC_ACFML_EXPERT = 'https://wpml.org/documentation/related-projects/translate-sites-built-with-acf/expert-translation-option/';

	// General
	const DOC_DIFFERENT_TRANSLATION_EDITORS = 'https://wpml.org/documentation/translating-your-contents/using-different-translation-editors-for-different-pages/';
	const DOC_TRANSLATE_POST_TYPE           = 'https://wpml.org/documentation/getting-started-guide/translating-custom-posts/';
	const FAQ_INSTALL_ST                    = 'https://wpml.org/faq/how-to-add-string-translation-to-your-site/';

	/**
	 * @param string $link   Link.
	 * @param array  $params UTM parameters.
	 *
	 * @return string
	 */
	private static function generate( $link, $params = [] ) {
		$anchor = Obj::prop( 'anchor', $params );

		$utmTags = wpml_collect( [
			'utm_source'   => 'plugin',
			'utm_medium'   => 'gui',
			'utm_campaign' => 'acfml',
			] )
			->merge( $params )
			->filter( function( $value, $key ) {
				return Str::startsWith( 'utm_', $key );
			} )
			->toArray();

		return add_query_arg( $utmTags, $anchor ? $link . '#' . $anchor : $link );
	}

	/**
	 * @param array $params
	 *
	 * @return string
	 */
	public static function getAcfmlMainDoc( $params = [] ) {
		return self::generate( self::DOC_ACFML_MAIN, $params );
	}

	/**
	 * @param array $params
	 *
	 * @return string
	 */
	public static function getAcfmlMainModeTranslationDoc( $params = [] ) {
		return self::getAcfmlMainDoc( array_merge( $params, [ 'anchor' => 'using-same-fields-across-languages' ] ) );
	}

	/**
	 * @param array $params
	 *
	 * @return string
	 */
	public static function getAcfmlMainModeLocalizationDoc( $params = [] ) {
		return self::getAcfmlMainDoc( array_merge( $params, [ 'anchor' => 'using-different-fields-across-languages' ] ) );
	}

	/**
	 * @param array $params
	 *
	 * @return string
	 */
	public static function getAcfmlExpertDoc( $params = [] ) {
		return self::generate( self::DOC_ACFML_EXPERT, $params );
	}

	/**
	 * @param array $params
	 *
	 * @return string
	 */
	public static function getDifferentTranslationEditorsDoc( $params = [] ) {
		return self::generate( self::DOC_DIFFERENT_TRANSLATION_EDITORS, $params );
	}

	/**
	 * @return string
	 */
	public static function getFaqInstallST() {
		return self::generate( self::FAQ_INSTALL_ST );
	}

	/**
	 * @return string
	 */
	public static function getDocTranslatePostType() {
		return self::generate( self::DOC_TRANSLATE_POST_TYPE );
	}
}