add extra data script plugin
add_filter( 'script_loader_src', function($src) {
global $advset_removed_scripts;
$mainsrc = explode('?', $src)[0];
if (isset($advset_removed_scripts[$mainsrc])) {
$wp_scripts = wp_scripts();
$src = '';
$handle = $advset_removed_scripts[$mainsrc];
// if (isset($wp_scripts->registered[$handle]->extra) && ($extra = $wp_scripts->registered[$handle]->extra) && isset($extra['data'])) {
// echo "\n\n";
// }
}
return $src;
});
// track scripts
if (advset_option('track_enqueued_scripts')) {
add_filter( 'print_scripts_array', function($scripts) {
global $advset_removed_scripts;
$wp_scripts = wp_scripts();
$tracked = get_option('advset_tracked_scripts') OR array();
$queue = $wp_scripts->to_do OR array();
// track scripts
if ($queue) {
foreach ($queue as $handle) {
$src = $wp_scripts->registered[$handle]->src;
if ($handle!=='advset-merged-scripts' && $src && !isset($advset_removed_scripts[$src])) {
$tracked[$handle] = $wp_scripts->registered[$handle];
}
}
}
update_option('advset_tracked_scripts', $tracked, true);
return $scripts;
}, 100000);
}
// remove scripts
add_filter( 'print_scripts_array', function($scripts) {
global $advset_removed_scripts;
// global $advset_removed_scripts, $advset_extras;
$wp_scripts = wp_scripts();
if ($removed_scripts = get_option('advset_scripts')) {
foreach ($removed_scripts as $key => $handle) {
if (strpos($key, 'remove_enqueued_script_')===0) {
$src = $wp_scripts->registered[$handle]->src;
if (strpos($src, '/')===0) {
$src = get_site_url().$src;
}
$advset_removed_scripts[$src] = 'removed';
// if (isset($wp_scripts->registered[$handle]->extra) && isset($wp_scripts->registered[$handle]->extra['data'])) {
// $advset_extras .= $wp_scripts->registered[$handle]->extra['data'];
// }
}
}
}
return $scripts;
});
// remove type="text/javascript"
if( advset_option('remove_script_type') ) {
add_filter( 'script_loader_tag', function ( $tag, $handle ) {
return str_replace("