Files
dostavka_vodi/wp-content/plugins/!clearfy/includes/classes/class.configurate-privacy.php
User A0264400 a766acdc90 first commit
2026-04-01 23:20:16 +03:00

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;
}
}