updated plugin W3 Total Cache version 2.5.0

This commit is contained in:
2023-10-22 22:21:26 +00:00
committed by Gitium
parent 2f6b5b6047
commit 9e3fa792d7
255 changed files with 10113 additions and 23010 deletions
wp-content/plugins/w3-total-cache
BrowserCache_Environment_Nginx.phpBrowserCache_Page_View_SectionSecurity.phpBrowserCache_Plugin.phpCacheFlush.phpCacheFlush_Locally.phpCacheGroups_Plugin_Admin.phpCacheGroups_Plugin_Admin_View.jsCacheGroups_Plugin_Admin_View.phpCache_File_Generic.phpCdn_AdminActions.phpCdn_GeneralPage_View.phpCdn_Highwinds_Widget_View.phpCdn_Highwinds_Widget_View_NotConfigured.phpCdn_Plugin.phpCdn_StackPath2_Page_View.phpCdn_StackPath2_Widget_View_Authorized.phpCdn_StackPath2_Widget_View_Unauthorized.phpCdn_StackPath_Page_View.phpCdn_StackPath_Widget_View_Authorized.phpCdn_StackPath_Widget_View_Unauthorized.phpCdnfsd_CloudFront_Page_View.phpCdnfsd_GeneralPage_View.phpCdnfsd_LimeLight_Page_View.phpCdnfsd_StackPath2_Page_View.phpCdnfsd_StackPath_Page_View.phpCdnfsd_TransparentCDN_Page_View.phpConfigCompiler.phpConfigKeys.phpDbCache_Environment.phpDbCache_Page.phpDbCache_Plugin.phpDbCache_Wpdb.phpDbCache_WpdbNew.phpDispatcher.phpExtension_Amp_Page_View.phpExtension_CloudFlare_Cdn_Page_View.phpExtension_CloudFlare_GeneralPage_View.phpExtension_CloudFlare_Page_View.phpExtension_CloudFlare_Plugin_Admin.phpExtension_FragmentCache_GeneralPage_View.phpExtension_FragmentCache_Page_View.phpExtension_FragmentCache_Plugin.phpExtension_FragmentCache_Plugin_Admin.phpExtension_Genesis_Page_View.phpExtension_ImageService_Page_View.phpExtension_ImageService_Plugin_Admin.phpExtension_NewRelic_GeneralPage_View.phpExtension_NewRelic_Page_View_Apm.phpExtension_Swarmify_Page_View.phpExtension_Wpml_Plugin_Admin.phpExtensions_Plugin_Admin.phpFeatureShowcase_Plugin_Admin.phpFeatureShowcase_Plugin_Admin_View.phpGeneric_AdminActions_Default.phpGeneric_AdminActions_Flush.phpGeneric_Page_Dashboard_View.cssGeneric_Plugin.phpGeneric_Plugin_Admin.phpGeneric_WidgetCommunity_View.phpGeneric_WidgetServices.phpGeneric_WidgetServices_View.phpLicensing_Plugin_Admin.phpMinify_Plugin.phpMinify_Plugin_Admin.phpMobile_Base.phpObjectCache_Environment.phpObjectCache_Page.phpObjectCache_Plugin.phpObjectCache_Plugin_Admin.phpObjectCache_WpObjectCache.phpObjectCache_WpObjectCache_Regular.phpPageSpeed_Api.phpPageSpeed_Instructions.phpPageSpeed_Page.phpPageSpeed_Page_View.cssPageSpeed_Page_View.jsPageSpeed_Widget.phpPgCache_ContentGrabber.phpPgCache_Plugin.phpRoot_AdminMenu.phpRoot_Loader.phpSetupGuide_Plugin_Admin.phpSupport_Page.phpSupport_Page_View_DoneContent.phpSystemOpCache_GeneralPage_View.phpUsageStatistics_GeneralPage_View.phpUsageStatistics_Page.phpUsageStatistics_Page_View_Free.phpUsageStatistics_Widget_View_Disabled.phpUserExperience_DeferScripts_Extension.phpUserExperience_DeferScripts_Mutator.phpUserExperience_DeferScripts_Page_View.phpUserExperience_DeferScripts_Script.jsUserExperience_GeneralPage_View.phpUserExperience_LazyLoad_Page_View.phpUserExperience_Page_View.phpUserExperience_Plugin_Admin.phpUtil_Admin.phpUtil_AttachToActions.phpUtil_Environment.phpUtil_PageSpeed.phpUtil_PageUrls.phpUtil_Ui.phpVarnish_Plugin.php
extension-example
inc
languages
pub
readme.txt
vendor
autoload.php
composer
guzzlehttp
guzzle
psr7
w3-total-cache-api.phpw3-total-cache.php
wp-content

@ -0,0 +1,175 @@
<?php
/**
* File: UserExperience_DeferScripts_Mutator.php
*
* JS feature mutator for buffer processing.
*
* @since 2.4.2
*
* @package W3TC
*/
namespace W3TC;
/**
* UserExperience DeferScripts Mutator.
*
* @since 2.4.2
*/
class UserExperience_DeferScripts_Mutator {
/**
* Config.
*
* @var object
*/
private $config;
/**
* Modified flag.
*
* @var boolean
*/
private $modified = false;
/**
* Array of includes.
*
* @var array
*/
private $includes = array();
/**
* User Experience DeferScripts Mutator constructor.
*
* @since 2.4.2
*
* @param object $config Config object.
*
* @return void
*/
public function __construct( $config ) {
$this->config = $config;
}
/**
* Runs User Experience DeferScripts Mutator.
*
* @since 2.4.2
*
* @param string $buffer Buffer string containing browser output.
*
* @return string
*/
public function run( $buffer ) {
$r = apply_filters(
'w3tc_deferscripts_mutator_before',
array(
'buffer' => $buffer,
'modified' => $this->modified,
)
);
$buffer = $r['buffer'];
$this->modified = $r['modified'];
$this->includes = $this->config->get_array(
array(
'user-experience-defer-scripts',
'includes',
)
);
$buffer = preg_replace_callback(
'~<script\s[^>]+>~is',
array(
$this,
'tag_script',
),
$buffer
);
return $buffer;
}
/**
* Get modified status flag.
*
* @since 2.4.2
*
* @return boolean
*/
public function content_modified() {
return $this->modified;
}
/**
* Modifies script tag for script matched to be deferred.
*
* @since 2.4.2
*
* @param array $matches array of matched JS entries.
*
* @return string
*/
public function tag_script( $matches ) {
$content = $matches[0];
if ( $this->is_content_included( $content ) ) {
$count = 0;
$content = preg_replace(
'~(\s)src=~is',
'$1data-lazy="w3tc" data-src=',
$content,
-1,
$count
);
if ( $count > 0 ) {
$this->modified = true;
}
}
return $content;
}
/**
* Checks if content has already been deferred.
*
* @since 2.4.2
*
* @param string $content script tag string.
*
* @return boolean
*/
private function is_content_included( $content ) {
foreach ( $this->includes as $w ) {
if ( ! empty( $w ) ) {
if ( strpos( $content, $w ) !== false ) {
return true;
}
}
}
return false;
}
/**
* Filters out scripts so Minify doesn't touch deferred scripts.
*
* @since 2.4.2
*
* @param array $script_tags array of script tags.
*
* @return array
*/
public function w3tc_minify_js_script_tags( $script_tags ) {
return array_values(
array_filter(
$script_tags,
function( $i ) {
return ! preg_match( '~\sdata-lazy="w3tc"\s~', $i );
}
)
);
}
}