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'] );
|
||
|
}
|
||
|
}
|