feat: caching, optimization, legal pages & footer
- WP Super Cache enabled (PHP mode, gzip, Nginx compatible) - Autoptimize: CSS/HTML minification + deferred JS + Google Fonts optimization - Cookie Notice: GDPR/LOPD banner styled with brand colors (navy/burgundy/gold) - Legal pages: Aviso Legal, Política de Privacidad, Política de Cookies (ES) - MU-plugin: custom footer with legal links + Cloud Host credit - Footer: copyright, legal nav, Hosted & Maintained by Cloud Host (cloudhost.es) - Security: X-Frame-Options, X-Content-Type, Referrer-Policy headers - Security: XML-RPC disabled, REST user enumeration blocked - Performance: emoji scripts removed, post revisions limited to 3
This commit is contained in:
@@ -0,0 +1,97 @@
|
||||
<?php
|
||||
// exit if accessed directly
|
||||
if ( ! defined( 'ABSPATH' ) )
|
||||
exit;
|
||||
|
||||
/**
|
||||
* Cookie Notice Modules WP Rocket class.
|
||||
*
|
||||
* Compatibility since: 3.8.0
|
||||
*
|
||||
* @class Cookie_Notice_Modules_WPRocket
|
||||
*/
|
||||
class Cookie_Notice_Modules_WPRocket {
|
||||
|
||||
/**
|
||||
* Constructor.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function __construct() {
|
||||
// actions
|
||||
add_action( 'plugins_loaded', [ $this, 'load_module' ], 11 );
|
||||
}
|
||||
|
||||
/**
|
||||
* Add compatibility to WP Rocket plugin.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function load_module() {
|
||||
// update 2.4.17
|
||||
if ( version_compare( Cookie_Notice()->db_version, '2.4.16', '<=' ) )
|
||||
$this->delete_cache();
|
||||
|
||||
// delete cache files after updating settings or status
|
||||
add_action( 'cn_configuration_updated', [ $this, 'delete_cache' ] );
|
||||
|
||||
// filters
|
||||
add_filter( 'rocket_exclude_defer_js', [ $this, 'exclude_script' ] );
|
||||
add_filter( 'rocket_exclude_js', [ $this, 'exclude_script' ] );
|
||||
add_filter( 'rocket_delay_js_exclusions', [ $this, 'exclude_script' ] );
|
||||
add_filter( 'rocket_delay_js_exclusions', [ $this, 'exclude_code' ] );
|
||||
add_filter( 'rocket_defer_inline_exclusions', [ $this, 'exclude_code' ] );
|
||||
add_filter( 'rocket_excluded_inline_js_content', [ $this, 'exclude_code' ] );
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete all cache files.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function delete_cache() {
|
||||
// clear cache
|
||||
if ( function_exists( 'rocket_clean_domain' ) )
|
||||
rocket_clean_domain();
|
||||
|
||||
// clear minified css and js files
|
||||
if ( function_exists( 'rocket_clean_minify' ) )
|
||||
rocket_clean_minify( [ 'js', 'css' ] );
|
||||
}
|
||||
|
||||
/**
|
||||
* Exclude JavaScript file.
|
||||
*
|
||||
* @param array $excludes
|
||||
* @return array
|
||||
*/
|
||||
function exclude_script( $excludes ) {
|
||||
// add widget url
|
||||
$excludes[] = basename( Cookie_Notice()->get_url( 'widget' ) );
|
||||
|
||||
// React admin asset exclusions — see Cookie_Notice::REACT_ADMIN_*.
|
||||
// Defense-in-depth if Rocket's delay-JS / minify touches admin pages
|
||||
// (e.g. via Cloudflare APO integrations).
|
||||
$excludes[] = Cookie_Notice::REACT_ADMIN_BUNDLE_BASENAME;
|
||||
|
||||
return $excludes;
|
||||
}
|
||||
|
||||
/**
|
||||
* Exclude JavaScript inline code.
|
||||
*
|
||||
* @param array $excludes
|
||||
* @return array
|
||||
*/
|
||||
function exclude_code( $excludes ) {
|
||||
// add widget inline code
|
||||
$excludes[] = 'huOptions';
|
||||
|
||||
// React admin asset exclusions — see Cookie_Notice::REACT_ADMIN_*.
|
||||
$excludes[] = Cookie_Notice::REACT_ADMIN_INLINE_KEYWORD;
|
||||
|
||||
return $excludes;
|
||||
}
|
||||
}
|
||||
|
||||
new Cookie_Notice_Modules_WPRocket();
|
||||
Reference in New Issue
Block a user