79 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			79 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
namespace WpAssetCleanUp\OptimiseAssets;
 | 
						|
 | 
						|
use WpAssetCleanUp\Main;
 | 
						|
use WpAssetCleanUp\Plugin;
 | 
						|
 | 
						|
/**
 | 
						|
 * Class LocalFonts
 | 
						|
 * @package WpAssetCleanUp\OptimiseAssets
 | 
						|
 */
 | 
						|
class FontsLocal
 | 
						|
{
 | 
						|
	/**
 | 
						|
	 *
 | 
						|
	 */
 | 
						|
	public function init()
 | 
						|
	{
 | 
						|
		if (self::preventAnyChange()) {
 | 
						|
			return;
 | 
						|
		}
 | 
						|
 | 
						|
		add_action('wp_head', array($this, 'preloadFontFiles'), 1);
 | 
						|
	}
 | 
						|
 | 
						|
	/**
 | 
						|
	 *
 | 
						|
	 */
 | 
						|
	public function preloadFontFiles()
 | 
						|
	{
 | 
						|
		// AMP page or Test Mode? Do not print anything
 | 
						|
		if ( Plugin::preventAnyFrontendOptimization() || Main::isTestModeActive() ) {
 | 
						|
			return;
 | 
						|
		}
 | 
						|
 | 
						|
		if (! $preloadFontFiles = trim(Main::instance()->settings['local_fonts_preload_files'])) {
 | 
						|
			return;
 | 
						|
		}
 | 
						|
 | 
						|
		$preloadFontFilesArray = array();
 | 
						|
 | 
						|
		if (strpos($preloadFontFiles, "\n") !== false) {
 | 
						|
			foreach (explode("\n", $preloadFontFiles) as $preloadFontFile) {
 | 
						|
				$preloadFontFile = trim($preloadFontFile);
 | 
						|
 | 
						|
				if (! $preloadFontFile) {
 | 
						|
					continue;
 | 
						|
				}
 | 
						|
 | 
						|
				$preloadFontFilesArray[] = $preloadFontFile;
 | 
						|
			}
 | 
						|
		} else {
 | 
						|
			$preloadFontFilesArray[] = $preloadFontFiles;
 | 
						|
		}
 | 
						|
 | 
						|
		$preloadFontFilesArray = array_unique($preloadFontFilesArray);
 | 
						|
 | 
						|
		$preloadFontFilesOutput = '';
 | 
						|
 | 
						|
		// Finally, go through the list
 | 
						|
		foreach ($preloadFontFilesArray as $preloadFontFile) {
 | 
						|
			$preloadFontFilesOutput .= '<link rel="preload" as="font" href="'.esc_attr($preloadFontFile).'" data-wpacu-preload-font="1" crossorigin>'."\n";
 | 
						|
		}
 | 
						|
 | 
						|
		echo apply_filters('wpacu_preload_local_font_files_output', $preloadFontFilesOutput);
 | 
						|
	}
 | 
						|
 | 
						|
	/**
 | 
						|
	 * @return bool
 | 
						|
	 */
 | 
						|
	public static function preventAnyChange()
 | 
						|
	{
 | 
						|
		if (defined('WPACU_ALLOW_ONLY_UNLOAD_RULES') && WPACU_ALLOW_ONLY_UNLOAD_RULES) {
 | 
						|
			return true;
 | 
						|
		}
 | 
						|
 | 
						|
		return false;
 | 
						|
	}
 | 
						|
}
 |