* @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 * @since 1.5.3 */ public function clean_meta_generators() { ob_start([$this, 'replace_meta_generators']); } /** * @author Alexander Kovalev * @since 1.0.0 */ public function clean_html_comments() { if( !WCL_Helper::doing_rest_api() ) { ob_start([$this, 'replace_html_comments']); } } /** * Replace like tags * which may contain versioning of * * @param $html * * @return string|string[]|null * @author Alexander Kovalev * @since 1.5.3 * */ public function replace_meta_generators($html) { $raw_html = $html; $pattern = '/]+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', '', $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; } }