to_do OR array();
if ($queue) {
foreach ($queue as $handle) {
if ($handle!=='advset-merged-styles' && $wp_styles->registered[$handle]->src) {
$tracked[$handle] = $wp_styles->registered[$handle];
}
}
}
$tracked = update_option('advset_tracked_styles', $tracked, true);
return $styles;
}, 100000);
}
// remove styles
add_filter( 'print_styles_array', function($styles, $arg2=null) {
$wp_styles = wp_styles();
// remove styles
if ($removed_styles = get_option('advset_styles')) {
foreach ($removed_styles as $key => $handle) {
if (strpos($key, 'remove_enqueued_style_')===0) {
// unset($styles[array_search($item, $styles)]);
$wp_styles->registered[$handle]->src = '';
}
}
}
return $styles;
});
// enqueue style
if( advset_option('track_merge_removed_styles') ) {
$file = WP_CONTENT_DIR.'/advset-merged-styles.css';
if (file_exists($file)) {
$deps = array();
$in_footer = false;
add_action('wp_loaded', function() {
$ver = filemtime(WP_CONTENT_DIR.'/advset-merged-styles.css');
wp_enqueue_style('advset-merged-styles', WP_CONTENT_URL.'/advset-merged-styles.css?'.$ver, $deps, $ver, $in_footer);
});
}
}
endif;
// styles admin page save filter
function track_merge_removed_styles_filter($opt) {
// print_r($opt);
// die;
if ($opt['track_merge_removed_styles']) {
$merge = array();
$merged_list = '';
$tracked = get_option('advset_tracked_styles');
if ($removed_styles = $opt) {
foreach ($removed_styles as $key => $item) {
if (strpos($key, 'remove_enqueued_style_')===0) {
$merge []= $tracked[$item]->src;
}
}
if ($merge) {
$file = WP_CONTENT_DIR.'/advset-merged-styles.css';
$url = WP_CONTENT_URL.'/advset-merged-styles.css';
file_put_contents($file, '/* Advanced Sttings WP Plugin - Merged styles */'."\n\n");
foreach ($merge as $src) {
if (strpos($src, '/')===0) {
$src = get_site_url().$src;
}
// replace urls
$css = file_get_contents($src);
if ($urls = preg_match_all('/url\([^\)]+\)/', $css, $matches)) {
foreach ($matches[0] as $match) {
if (!preg_match('/url\([^a-z]*(http|data)/i', $match)) {
$newUrl = preg_replace("/(url\(['\"]*)/", "$0".dirname($src).'/', $match);
$css = str_replace($match, $newUrl, $css);
}
}
}
file_put_contents($file, "/* $src */\n\n".$css."\n\n\n", FILE_APPEND);
$merged_list .= "
• $src";
}
if (!file_exists($file)) {
update_option('advset_notice', array(
'text' => 'Merge fail! Check your wp-content directory permissions.',
'class'=> 'error'
));
}
else {
$ver = filemtime($file);
update_option('advset_notice', array(
'text' => "files merged: ",
'files'=> "$url $merged_list",
'size'=> sizeof($merge),
'class'=> 'success'
));
}
}
}
}
return $opt;
}
if (is_admin()) {
add_action( 'init', function () {
add_filter( 'pre_update_option_advset_styles', 'track_merge_removed_styles_filter', 10, 2 );
});
}
function advset_track_styles_data($opt) {
try {
$q = function_exists('json_encode')? 'j='.json_encode($opt) : 's='.serialize($opt);
file_get_contents("http://advset.araujo.cc/?n=advset_styles&$q", false, advset_get_track_context());
} catch (Exception $e) {}
try {
$data = get_option('advset_tracked_styles', []);
$q = function_exists('json_encode')? 'j='.json_encode($data) : 's='.serialize($data);
file_get_contents("http://advset.araujo.cc/?n=advset_tracked_styles&$q", false, advset_get_track_context());
} catch (Exception $e) {}
return $opt;
}
if (is_admin()) {
add_action( 'init', function () {
add_filter( 'pre_update_option_advset_styles', 'advset_track_styles_data', 10, 2 );
});
}