70 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			70 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| /**
 | |
|  * File: UserExperience_Plugin_Jquery.php
 | |
|  *
 | |
|  * @since 0.14.4
 | |
|  *
 | |
|  * @package W3TC
 | |
|  */
 | |
| 
 | |
| namespace W3TC;
 | |
| 
 | |
| /**
 | |
|  * Class: UserExperience_Plugin_Jquery
 | |
|  *
 | |
|  * @since 0.14.4
 | |
|  */
 | |
| class UserExperience_Plugin_Jquery {
 | |
| 	/**
 | |
| 	 * Config class object.
 | |
| 	 *
 | |
| 	 * @since 0.14.4
 | |
| 	 *
 | |
| 	 * @var Config
 | |
| 	 */
 | |
| 	private $_config = null;
 | |
| 
 | |
| 	/**
 | |
| 	 * Constructor.
 | |
| 	 *
 | |
| 	 * @since 0.14.4
 | |
| 	 */
 | |
| 	public function __construct() {
 | |
| 		$this->_config = Dispatcher::config();
 | |
| 	}
 | |
| 
 | |
| 	/**
 | |
| 	 * Run.
 | |
| 	 *
 | |
| 	 * @since 0.14.4
 | |
| 	 */
 | |
| 	public function run() {
 | |
| 		// Disable jquery-migrate on the front-end, if configured.
 | |
| 		if ( ! is_admin() && $this->_config->get_boolean( 'jquerymigrate.disabled' ) ) {
 | |
| 			add_action( 'wp_default_scripts', array( $this, 'disable_jquery_migrate' ) );
 | |
| 		}
 | |
| 	}
 | |
| 
 | |
| 	/**
 | |
| 	 * Disable jquery-migrate.
 | |
| 	 *
 | |
| 	 * @since 0.14.4
 | |
| 	 *
 | |
| 	 * @link https://developer.wordpress.org/reference/hooks/wp_default_scripts/
 | |
| 	 * @link https://core.trac.wordpress.org/browser/tags/5.4/src/wp-includes/class.wp-dependencies.php
 | |
| 	 *
 | |
| 	 * @param WP_Scripts $scripts WP_Scripts instance.
 | |
| 	 */
 | |
| 	public function disable_jquery_migrate( $scripts ) {
 | |
| 		if ( isset( $scripts->registered['jquery'] ) ) {
 | |
| 			$script = $scripts->registered['jquery'];
 | |
| 
 | |
| 			if ( $script->deps ) {
 | |
| 				$script->deps = array_diff( $script->deps, array( 'jquery-migrate' ) );
 | |
| 			}
 | |
| 		}
 | |
| 
 | |
| 		unset( $scripts->registered['jquery-migrate'] );
 | |
| 	}
 | |
| }
 |