126 lines
2.8 KiB
PHP
126 lines
2.8 KiB
PHP
<?php
|
|
|
|
/**
|
|
* This class configures the code cleanup settings
|
|
*
|
|
* @author Webcraftic <wordpress.webraftic@gmail.com>
|
|
* @copyright (c) 2017 Webraftic Ltd
|
|
* @version 1.0
|
|
*/
|
|
|
|
// Exit if accessed directly
|
|
if( !defined('ABSPATH') ) {
|
|
exit;
|
|
}
|
|
|
|
class WCL_ConfigPrivacy extends WBCR\Factory_Templates_134\Configurate {
|
|
|
|
/**
|
|
* @param WCL_Plugin $plugin
|
|
*/
|
|
public function __construct(WCL_Plugin $plugin)
|
|
{
|
|
parent::__construct($plugin);
|
|
|
|
$this->plugin = $plugin;
|
|
}
|
|
|
|
public function registerActionsAndFilters()
|
|
{
|
|
if( !is_admin() ) {
|
|
if( $this->getPopulateOption('remove_meta_generator') ) {
|
|
// Clean meta generator for Woocommerce
|
|
if( class_exists('WooCommerce') ) {
|
|
remove_action('wp_head', 'woo_version');
|
|
}
|
|
|
|
// Clean meta generator for SitePress
|
|
if( class_exists('SitePress') ) {
|
|
global $sitepress;
|
|
remove_action('wp_head', [$sitepress, 'meta_generator_tag']);
|
|
}
|
|
|
|
// Clean meta generator for Wordpress core
|
|
remove_action('wp_head', 'wp_generator');
|
|
add_filter('the_generator', '__return_empty_string');
|
|
|
|
// Clean all meta generators
|
|
add_action('wp_head', [$this, 'clean_meta_generators'], 100);
|
|
}
|
|
|
|
if( $this->getPopulateOption('remove_html_comments') ) {
|
|
add_action('wp_loaded', [$this, 'clean_html_comments']);
|
|
}
|
|
}
|
|
}
|
|
|
|
/**
|
|
* @author Alexander Kovalev <alex.kovalevv@gmail.com>
|
|
* @since 1.5.3
|
|
*/
|
|
public function clean_meta_generators()
|
|
{
|
|
ob_start([$this, 'replace_meta_generators']);
|
|
}
|
|
|
|
/**
|
|
* @author Alexander Kovalev <alex.kovalevv@gmail.com>
|
|
* @since 1.0.0
|
|
*/
|
|
public function clean_html_comments()
|
|
{
|
|
if( !WCL_Helper::doing_rest_api() ) {
|
|
ob_start([$this, 'replace_html_comments']);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Replace <meta .* name="generator"> like tags
|
|
* which may contain versioning of
|
|
*
|
|
* @param $html
|
|
*
|
|
* @return string|string[]|null
|
|
* @author Alexander Kovalev <alex.kovalevv@gmail.com>
|
|
* @since 1.5.3
|
|
*
|
|
*/
|
|
public function replace_meta_generators($html)
|
|
{
|
|
$raw_html = $html;
|
|
|
|
$pattern = '/<meta[^>]+name=["\']generator["\'][^>]+>/i';
|
|
$html = preg_replace($pattern, '', $html);
|
|
|
|
// If replacement is completed with an error, user will receive a white screen.
|
|
// We have to prevent it.
|
|
if( empty($html) ) {
|
|
return $raw_html;
|
|
}
|
|
|
|
return $html;
|
|
}
|
|
|
|
/**
|
|
* !ngg_resource - can not be deleted, otherwise the plugin nextgen gallery will not work
|
|
*
|
|
* @param string $data
|
|
*
|
|
* @return mixed
|
|
*/
|
|
public function replace_html_comments($html)
|
|
{
|
|
$raw_html = $html;
|
|
|
|
//CLRF-166 issue fix bug with noindex (\s?\/?noindex)
|
|
$html = preg_replace('#<!--(?!<!|\s?ngg_resource|\s?\/?noindex|\s?\/?wp:)[^\[>].*?-->#s', '', $html);
|
|
|
|
// If replacement is completed with an error, user will receive a white screen.
|
|
// We have to prevent it.
|
|
if( empty($html) ) {
|
|
return $raw_html;
|
|
}
|
|
|
|
return $html;
|
|
}
|
|
} |