X7ROOT File Manager
Current Path:
/home/mysptejz/public_html/web-hosting/wp-content/plugins/w3-total-cache
home
/
mysptejz
/
public_html
/
web-hosting
/
wp-content
/
plugins
/
w3-total-cache
/
ðŸ“
..
📄
Base_Page_Settings.php
(6.82 KB)
📄
BrowserCache_ConfigLabels.php
(10.36 KB)
📄
BrowserCache_Core.php
(3.19 KB)
📄
BrowserCache_Environment.php
(31.64 KB)
📄
BrowserCache_Environment_Apache.php
(3.38 KB)
📄
BrowserCache_Environment_LiteSpeed.php
(8.41 KB)
📄
BrowserCache_Environment_Nginx.php
(22.25 KB)
📄
BrowserCache_Page.php
(3.28 KB)
📄
BrowserCache_Page_View_QuickReference.php
(2.58 KB)
📄
BrowserCache_Page_View_SectionSecurity.php
(61.6 KB)
📄
BrowserCache_Plugin.php
(15.11 KB)
📄
BrowserCache_Plugin_Admin.php
(1.33 KB)
📄
Cache.php
(4.52 KB)
📄
CacheFlush.php
(7.88 KB)
📄
CacheFlush_Locally.php
(12.6 KB)
📄
CacheGroups_Plugin_Admin.php
(7.98 KB)
📄
CacheGroups_Plugin_Admin_View.js
(23 KB)
📄
CacheGroups_Plugin_Admin_View.php
(15.17 KB)
📄
Cache_Apc.php
(7.75 KB)
📄
Cache_Apcu.php
(7.77 KB)
📄
Cache_Base.php
(6.49 KB)
📄
Cache_Eaccelerator.php
(7.58 KB)
📄
Cache_File.php
(21.25 KB)
📄
Cache_File_Cleaner.php
(2.69 KB)
📄
Cache_File_Cleaner_Generic.php
(4.05 KB)
📄
Cache_File_Cleaner_Generic_HardDelete.php
(1.05 KB)
📄
Cache_File_Generic.php
(12.54 KB)
📄
Cache_Memcache.php
(14.32 KB)
📄
Cache_Memcached.php
(18.13 KB)
📄
Cache_Memcached_Stats.php
(3.52 KB)
📄
Cache_Nginx_Memcached.php
(13.55 KB)
📄
Cache_Redis.php
(13.31 KB)
📄
Cache_Wincache.php
(12.72 KB)
📄
Cache_Xcache.php
(11.55 KB)
📄
CdnEngine.php
(2.54 KB)
📄
CdnEngine_Azure.php
(12.65 KB)
📄
CdnEngine_Azure_MI.php
(12.28 KB)
📄
CdnEngine_Azure_MI_Utility.php
(18.19 KB)
📄
CdnEngine_Base.php
(16.37 KB)
📄
CdnEngine_CloudFront.php
(12.38 KB)
📄
CdnEngine_Ftp.php
(21.08 KB)
📄
CdnEngine_GoogleDrive.php
(24.14 KB)
📄
CdnEngine_Mirror.php
(2.46 KB)
📄
CdnEngine_Mirror_Akamai.php
(3.52 KB)
📄
CdnEngine_Mirror_Att.php
(293 B)
📄
CdnEngine_Mirror_BunnyCdn.php
(4.3 KB)
📄
CdnEngine_Mirror_CloudFront.php
(10.48 KB)
📄
CdnEngine_Mirror_Cotendo.php
(3.72 KB)
📄
CdnEngine_Mirror_Edgecast.php
(4.46 KB)
📄
CdnEngine_Mirror_RackSpaceCdn.php
(6.57 KB)
📄
CdnEngine_RackSpaceCloudFiles.php
(12.01 KB)
📄
CdnEngine_S3.php
(17.55 KB)
📄
CdnEngine_S3_Compatible.php
(10.36 KB)
📄
Cdn_AdminActions.php
(16.81 KB)
📄
Cdn_AdminNotes.php
(13.71 KB)
📄
Cdn_BunnyCdn_Api.php
(15.67 KB)
📄
Cdn_BunnyCdn_Page.php
(7.4 KB)
📄
Cdn_BunnyCdn_Page_View.js
(13.14 KB)
📄
Cdn_BunnyCdn_Page_View.php
(3.6 KB)
📄
Cdn_BunnyCdn_Page_View_Purge_Urls.php
(2.06 KB)
📄
Cdn_BunnyCdn_Popup.php
(10.83 KB)
📄
Cdn_BunnyCdn_Popup_View_Configured.php
(864 B)
📄
Cdn_BunnyCdn_Popup_View_Deauthorize.php
(2.15 KB)
📄
Cdn_BunnyCdn_Popup_View_Deauthorized.php
(1.54 KB)
📄
Cdn_BunnyCdn_Popup_View_Intro.php
(1.83 KB)
📄
Cdn_BunnyCdn_Popup_View_Pull_Zones.php
(5.16 KB)
📄
Cdn_BunnyCdn_Widget.php
(2.25 KB)
📄
Cdn_BunnyCdn_Widget_View.css
(1.26 KB)
📄
Cdn_BunnyCdn_Widget_View_Authorized.php
(1.9 KB)
📄
Cdn_BunnyCdn_Widget_View_Unauthorized.php
(6.1 KB)
📄
Cdn_CacheFlush.php
(2.64 KB)
📄
Cdn_ConfigLabels.php
(5.43 KB)
📄
Cdn_Core.php
(32.83 KB)
📄
Cdn_Core_Admin.php
(27.08 KB)
📄
Cdn_Environment.php
(19.29 KB)
📄
Cdn_Environment_LiteSpeed.php
(5.19 KB)
📄
Cdn_Environment_Nginx.php
(3.92 KB)
📄
Cdn_GeneralPage_View.php
(4.05 KB)
📄
Cdn_GoogleDrive_AdminActions.php
(3.53 KB)
📄
Cdn_GoogleDrive_Page.php
(2.03 KB)
📄
Cdn_GoogleDrive_Page_View.js
(6.25 KB)
📄
Cdn_GoogleDrive_Page_View.php
(1.36 KB)
📄
Cdn_GoogleDrive_Popup_AuthReturn.php
(1.61 KB)
📄
Cdn_GoogleDrive_Popup_AuthReturn_View.php
(1.66 KB)
📄
Cdn_Page.php
(3.5 KB)
📄
Cdn_Page_View_Fsd_HeaderActions.php
(760 B)
📄
Cdn_Plugin.php
(43.77 KB)
📄
Cdn_Plugin_Admin.php
(7.3 KB)
📄
Cdn_RackSpaceCdn_AdminActions.php
(1.28 KB)
📄
Cdn_RackSpaceCdn_Page.php
(2.05 KB)
📄
Cdn_RackSpaceCdn_Page_View.js
(10.06 KB)
📄
Cdn_RackSpaceCdn_Page_View.php
(5.22 KB)
📄
Cdn_RackSpaceCdn_Popup.php
(21.49 KB)
📄
Cdn_RackSpaceCdn_Popup_View_ConfigureDomains.php
(1.87 KB)
📄
Cdn_RackSpaceCdn_Popup_View_Intro.php
(1.71 KB)
📄
Cdn_RackSpaceCdn_Popup_View_Regions.php
(1.76 KB)
📄
Cdn_RackSpaceCdn_Popup_View_Service_Actualize.php
(2.04 KB)
📄
Cdn_RackSpaceCdn_Popup_View_Service_Create.php
(4.41 KB)
📄
Cdn_RackSpaceCdn_Popup_View_Service_Created.php
(2.48 KB)
📄
Cdn_RackSpaceCdn_Popup_View_Services.php
(1.99 KB)
📄
Cdn_RackSpaceCloudFiles_Page.php
(1.67 KB)
📄
Cdn_RackSpaceCloudFiles_Page_View.js
(6.44 KB)
📄
Cdn_RackSpaceCloudFiles_Page_View.php
(4.91 KB)
📄
Cdn_RackSpaceCloudFiles_Popup.php
(7.62 KB)
📄
Cdn_RackSpaceCloudFiles_Popup_View_Containers.php
(2.06 KB)
📄
Cdn_RackSpaceCloudFiles_Popup_View_Intro.php
(1.71 KB)
📄
Cdn_RackSpaceCloudFiles_Popup_View_Regions.php
(1.78 KB)
📄
Cdn_RackSpace_Api_CaCert-example.pem
(195.74 KB)
📄
Cdn_RackSpace_Api_Cdn.php
(10.72 KB)
📄
Cdn_RackSpace_Api_CloudFiles.php
(8.37 KB)
📄
Cdn_RackSpace_Api_CloudFilesCdn.php
(8.48 KB)
📄
Cdn_RackSpace_Api_Tokens.php
(6.78 KB)
📄
Cdn_Util.php
(6.73 KB)
📄
Cdnfsd_BunnyCdn_Engine.php
(2.03 KB)
📄
Cdnfsd_BunnyCdn_Page.php
(683 B)
📄
Cdnfsd_BunnyCdn_Page_View.js
(9.7 KB)
📄
Cdnfsd_BunnyCdn_Page_View.php
(3.72 KB)
📄
Cdnfsd_BunnyCdn_Popup.php
(10.39 KB)
📄
Cdnfsd_BunnyCdn_Popup_View_Configured.php
(1.3 KB)
📄
Cdnfsd_BunnyCdn_Popup_View_Deauthorize.php
(2.17 KB)
📄
Cdnfsd_BunnyCdn_Popup_View_Deauthorized.php
(1.56 KB)
📄
Cdnfsd_BunnyCdn_Popup_View_Intro.php
(1.85 KB)
📄
Cdnfsd_BunnyCdn_Popup_View_Pull_Zones.php
(5.57 KB)
📄
Cdnfsd_CacheFlush.php
(8.25 KB)
📄
Cdnfsd_CloudFront_Engine.php
(3.38 KB)
📄
Cdnfsd_CloudFront_Page.php
(741 B)
📄
Cdnfsd_CloudFront_Page_View.js
(8.51 KB)
📄
Cdnfsd_CloudFront_Page_View.php
(2.04 KB)
📄
Cdnfsd_CloudFront_Popup.php
(15.46 KB)
📄
Cdnfsd_CloudFront_Popup_View_Distribution.php
(3.34 KB)
📄
Cdnfsd_CloudFront_Popup_View_Distributions.php
(1.72 KB)
📄
Cdnfsd_CloudFront_Popup_View_Intro.php
(1.65 KB)
📄
Cdnfsd_CloudFront_Popup_View_Success.php
(976 B)
📄
Cdnfsd_Core.php
(1.96 KB)
📄
Cdnfsd_GeneralPage_View.php
(4.02 KB)
📄
Cdnfsd_Plugin.php
(1.98 KB)
📄
Cdnfsd_Plugin_Admin.php
(2.63 KB)
📄
Cdnfsd_TransparentCDN_Engine.php
(7.97 KB)
📄
Cdnfsd_TransparentCDN_Page.php
(1.36 KB)
📄
Cdnfsd_TransparentCDN_Page_View.js
(7.13 KB)
📄
Cdnfsd_TransparentCDN_Page_View.php
(2.33 KB)
📄
Cdnfsd_Util.php
(834 B)
📄
Cli.php
(17.33 KB)
📄
Config.php
(16.8 KB)
📄
ConfigCache.php
(4.67 KB)
📄
ConfigCompiler.php
(17.87 KB)
📄
ConfigDbStorage.php
(15.87 KB)
📄
ConfigKeys.php
(69.92 KB)
📄
ConfigSettingsTabs.php
(1.18 KB)
📄
ConfigSettingsTabsKeys.php
(19.62 KB)
📄
ConfigState.php
(6.08 KB)
📄
ConfigStateNote.php
(1.94 KB)
📄
ConfigUtil.php
(3.45 KB)
📄
DbCache_ConfigLabels.php
(1.22 KB)
📄
DbCache_Core.php
(2.05 KB)
📄
DbCache_Environment.php
(6.41 KB)
📄
DbCache_Page.php
(1.1 KB)
📄
DbCache_Plugin.php
(9.62 KB)
📄
DbCache_Plugin_Admin.php
(5.08 KB)
📄
DbCache_Wpdb.php
(1.63 KB)
📄
DbCache_WpdbBase.php
(346 B)
📄
DbCache_WpdbInjection.php
(7.15 KB)
📄
DbCache_WpdbInjection_QueryCaching.php
(26.05 KB)
📄
DbCache_WpdbLegacy.php
(22.42 KB)
📄
DbCache_WpdbNew.php
(22.24 KB)
📄
Dispatcher.php
(8.21 KB)
📄
Enterprise_CacheFlush_MakeSnsEvent.php
(7.47 KB)
📄
Enterprise_Dbcache_WpdbInjection_Cluster.php
(30.32 KB)
📄
Enterprise_SnsBase.php
(3.07 KB)
📄
Enterprise_SnsServer.php
(5.17 KB)
📄
Extension_AlwaysCached_AdminActions.php
(2.36 KB)
📄
Extension_AlwaysCached_Environment.php
(2.87 KB)
📄
Extension_AlwaysCached_Page.php
(4 KB)
📄
Extension_AlwaysCached_Page_Queue_View.php
(3.14 KB)
📄
Extension_AlwaysCached_Page_View.js
(13.04 KB)
📄
Extension_AlwaysCached_Page_View.php
(2.51 KB)
📄
Extension_AlwaysCached_Page_View_BoxCron.php
(2.92 KB)
📄
Extension_AlwaysCached_Page_View_BoxFlushAll.php
(3.28 KB)
📄
Extension_AlwaysCached_Page_View_BoxQueue.php
(4.35 KB)
📄
Extension_AlwaysCached_Page_View_Exclusions.php
(1.11 KB)
📄
Extension_AlwaysCached_Plugin.php
(12.1 KB)
📄
Extension_AlwaysCached_Plugin_Admin.php
(3.06 KB)
📄
Extension_AlwaysCached_Queue.php
(10.22 KB)
📄
Extension_AlwaysCached_Worker.php
(2.93 KB)
📄
Extension_Amp_Page_View.php
(1.26 KB)
📄
Extension_Amp_Plugin.php
(11.1 KB)
📄
Extension_Amp_Plugin_Admin.php
(2.19 KB)
📄
Extension_CloudFlare_AdminActions.php
(1.57 KB)
📄
Extension_CloudFlare_Api.php
(12.19 KB)
📄
Extension_CloudFlare_Cdn_Page_View.php
(625 B)
📄
Extension_CloudFlare_GeneralPage_View.php
(3.05 KB)
📄
Extension_CloudFlare_Page.php
(4.32 KB)
📄
Extension_CloudFlare_Page_View.js
(6.93 KB)
📄
Extension_CloudFlare_Page_View.php
(27.38 KB)
📄
Extension_CloudFlare_Plugin.php
(15.19 KB)
📄
Extension_CloudFlare_Plugin_Admin.php
(14.13 KB)
📄
Extension_CloudFlare_Popup.php
(4.21 KB)
📄
Extension_CloudFlare_Popup_View_Intro.php
(1.75 KB)
📄
Extension_CloudFlare_Popup_View_Zones.php
(2.09 KB)
📄
Extension_CloudFlare_SettingsForUi.php
(4.84 KB)
📄
Extension_CloudFlare_View_Dashboard.js
(6.49 KB)
📄
Extension_CloudFlare_Widget.php
(4.63 KB)
📄
Extension_CloudFlare_Widget_Logo.png
(6.96 KB)
📄
Extension_CloudFlare_Widget_View.css
(683 B)
📄
Extension_CloudFlare_Widget_View.php
(1.65 KB)
📄
Extension_FragmentCache_Api.php
(7.01 KB)
📄
Extension_FragmentCache_Core.php
(3.38 KB)
📄
Extension_FragmentCache_Environment.php
(1.41 KB)
📄
Extension_FragmentCache_GeneralPage.php
(1.27 KB)
📄
Extension_FragmentCache_GeneralPage_View.php
(2.47 KB)
📄
Extension_FragmentCache_Page.php
(697 B)
📄
Extension_FragmentCache_Page_View.php
(5.25 KB)
📄
Extension_FragmentCache_Plugin.php
(8.21 KB)
📄
Extension_FragmentCache_Plugin_Admin.php
(8.91 KB)
📄
Extension_FragmentCache_WpObjectCache.php
(16.92 KB)
📄
Extension_Genesis_Page.php
(409 B)
📄
Extension_Genesis_Page_View.php
(11.11 KB)
📄
Extension_Genesis_Plugin.php
(14.46 KB)
📄
Extension_Genesis_Plugin_Admin.php
(5.45 KB)
📄
Extension_ImageService_Api.php
(11.99 KB)
📄
Extension_ImageService_Cron.php
(6.49 KB)
📄
Extension_ImageService_Environment.php
(4.6 KB)
📄
Extension_ImageService_Page_View.php
(8.41 KB)
📄
Extension_ImageService_Plugin.php
(1.44 KB)
📄
Extension_ImageService_Plugin_Admin.css
(2.34 KB)
📄
Extension_ImageService_Plugin_Admin.js
(23.15 KB)
📄
Extension_ImageService_Plugin_Admin.php
(42.7 KB)
📄
Extension_ImageService_Widget.js
(11.95 KB)
📄
Extension_ImageService_Widget.php
(3.34 KB)
📄
Extension_ImageService_Widget_View.php
(1.59 KB)
📄
Extension_NewRelic_AdminActions.php
(1.11 KB)
📄
Extension_NewRelic_AdminNotes.php
(2.11 KB)
📄
Extension_NewRelic_Api.php
(4.03 KB)
📄
Extension_NewRelic_Core.php
(1.33 KB)
📄
Extension_NewRelic_GeneralPage.php
(1.53 KB)
📄
Extension_NewRelic_GeneralPage_View.php
(2.84 KB)
📄
Extension_NewRelic_Page.php
(1.35 KB)
📄
Extension_NewRelic_Page_View_Apm.php
(12.87 KB)
📄
Extension_NewRelic_Plugin.php
(7.09 KB)
📄
Extension_NewRelic_Plugin_Admin.php
(8.08 KB)
📄
Extension_NewRelic_Popup.php
(3.96 KB)
📄
Extension_NewRelic_Popup_View.js
(7.5 KB)
📄
Extension_NewRelic_Popup_View_Intro.php
(1.37 KB)
📄
Extension_NewRelic_Popup_View_ListApplications.php
(1.93 KB)
📄
Extension_NewRelic_Service.php
(21.65 KB)
📄
Extension_NewRelic_Widget.php
(10.48 KB)
📄
Extension_NewRelic_Widget_View.css
(1.37 KB)
📄
Extension_NewRelic_Widget_View.js
(8.2 KB)
📄
Extension_NewRelic_Widget_View_Apm.php
(2.91 KB)
📄
Extension_NewRelic_Widget_View_Browser.php
(436 B)
📄
Extension_NewRelic_Widget_View_NotConfigured.php
(233 B)
📄
Extension_Swarmify_AdminActions.php
(793 B)
📄
Extension_Swarmify_Core.php
(748 B)
📄
Extension_Swarmify_Page.php
(708 B)
📄
Extension_Swarmify_Page_View.php
(2.78 KB)
📄
Extension_Swarmify_Plugin.php
(4.63 KB)
📄
Extension_Swarmify_Plugin_Admin.php
(2.63 KB)
📄
Extension_WordPressSeo_Plugin.php
(1.39 KB)
📄
Extension_WordPressSeo_Plugin_Admin.php
(5.25 KB)
📄
Extension_Wpml_Plugin.php
(1.34 KB)
📄
Extension_Wpml_Plugin_Admin.php
(7.45 KB)
📄
Extensions_AdminActions.php
(943 B)
📄
Extensions_Page.php
(4.06 KB)
📄
Extensions_Plugin_Admin.php
(9.66 KB)
📄
Extensions_Util.php
(4.43 KB)
📄
FeatureShowcase_Plugin_Admin.php
(29.1 KB)
📄
FeatureShowcase_Plugin_Admin_View.php
(2.82 KB)
📄
Generic_AdminActions_Config.php
(6.61 KB)
📄
Generic_AdminActions_Default.php
(21.84 KB)
📄
Generic_AdminActions_Flush.php
(10.57 KB)
📄
Generic_AdminActions_Test.php
(6.15 KB)
📄
Generic_AdminNotes.php
(13.88 KB)
📄
Generic_ConfigLabels.php
(2.33 KB)
📄
Generic_Environment.php
(6.67 KB)
📄
Generic_Faq.php
(2.27 KB)
📄
Generic_GeneralPage_View_ShowEdge.js
(6.08 KB)
📄
Generic_Page_About.php
(503 B)
📄
Generic_Page_Dashboard.php
(1.66 KB)
📄
Generic_Page_Dashboard_View.css
(6.34 KB)
📄
Generic_Page_General.php
(2.88 KB)
📄
Generic_Page_Install.php
(913 B)
📄
Generic_Page_PurgeLog.php
(2.81 KB)
📄
Generic_Page_PurgeLog_View.php
(2.97 KB)
📄
Generic_Plugin.php
(23.04 KB)
📄
Generic_Plugin_Admin.php
(48.87 KB)
📄
Generic_Plugin_AdminCompatibility.php
(3.98 KB)
📄
Generic_Plugin_AdminNotices.css
(188 B)
📄
Generic_Plugin_AdminNotices.js
(7.43 KB)
📄
Generic_Plugin_AdminNotices.php
(12.12 KB)
📄
Generic_Plugin_AdminRowActions.php
(2.43 KB)
📄
Generic_Plugin_Admin_View_Faq.php
(1007 B)
📄
Generic_Plugin_Survey.php
(4.8 KB)
📄
Generic_WidgetAccount.php
(1.05 KB)
📄
Generic_WidgetAccount_View.php
(2.1 KB)
📄
Generic_WidgetBoldGrid.php
(1.97 KB)
📄
Generic_WidgetBoldGrid_AdminActions.php
(912 B)
📄
Generic_WidgetBoldGrid_Logo.svg
(4.28 KB)
📄
Generic_WidgetBoldGrid_View.js
(6.39 KB)
📄
Generic_WidgetBoldGrid_View.php
(872 B)
📄
Generic_WidgetPartners.php
(1.08 KB)
📄
Generic_WidgetPartners_View.php
(1.66 KB)
📄
Generic_WidgetServices.php
(1.66 KB)
📄
Generic_WidgetServices_View.php
(501 B)
📄
Generic_WidgetSettings.php
(1.05 KB)
📄
Generic_WidgetSettings_View.php
(3.37 KB)
📄
Generic_WidgetSpreadTheWord.js
(6.64 KB)
📄
Generic_WidgetSpreadTheWord_Plugin.php
(2.03 KB)
📄
Generic_WidgetSpreadTheWord_View.php
(579 B)
📄
Generic_WidgetStats.js
(9.08 KB)
📄
Generic_WidgetStats.php
(4.84 KB)
📄
LICENSE
(17.67 KB)
📄
Licensing_AdminActions.php
(4.22 KB)
📄
Licensing_Core.php
(6.28 KB)
📄
Licensing_Plugin_Admin.php
(16.65 KB)
📄
Minify_AutoCss.php
(8.83 KB)
📄
Minify_AutoJs.php
(9.68 KB)
📄
Minify_ConfigLabels.php
(8.66 KB)
📄
Minify_ContentMinifier.php
(10.24 KB)
📄
Minify_Core.php
(7.42 KB)
📄
Minify_Environment.php
(26.91 KB)
📄
Minify_Environment_LiteSpeed.php
(977 B)
📄
Minify_Extract.php
(2.8 KB)
📄
Minify_GeneralPage_View_ShowHelp.js
(6.9 KB)
📄
Minify_GeneralPage_View_ShowHelpForce.js
(5.83 KB)
📄
Minify_HelpPopup_View.php
(5.01 KB)
📄
Minify_MinifiedFileRequestHandler.php
(32.87 KB)
📄
Minify_Page.php
(18.45 KB)
📄
Minify_Plugin.php
(41.75 KB)
📄
Minify_Plugin_Admin.php
(11.97 KB)
📄
Mobile_Base.php
(6.85 KB)
📄
Mobile_Redirect.php
(1.85 KB)
📄
Mobile_Referrer.php
(2.4 KB)
📄
Mobile_UserAgent.php
(971 B)
📄
ModuleStatus.php
(4.37 KB)
📄
ObjectCache_ConfigLabels.php
(1.25 KB)
📄
ObjectCache_DiskPopup.js
(8.18 KB)
📄
ObjectCache_DiskPopup_View.php
(1.77 KB)
📄
ObjectCache_Environment.php
(6.79 KB)
📄
ObjectCache_Page.php
(560 B)
📄
ObjectCache_Page_View_PurgeLog.php
(1.01 KB)
📄
ObjectCache_Plugin.php
(6.54 KB)
📄
ObjectCache_Plugin_Admin.php
(6.97 KB)
📄
ObjectCache_WpObjectCache.php
(10.17 KB)
📄
ObjectCache_WpObjectCache_Regular.php
(34.11 KB)
📄
PageSpeed_Api.php
(12.16 KB)
📄
PageSpeed_Data.php
(37.19 KB)
📄
PageSpeed_Instructions.php
(43.29 KB)
📄
PageSpeed_Page.php
(8.76 KB)
📄
PageSpeed_Page_View.css
(6.21 KB)
📄
PageSpeed_Page_View.js
(15.26 KB)
📄
PageSpeed_Page_View.php
(2.08 KB)
📄
PageSpeed_Page_View_FromAPI.php
(7.65 KB)
📄
PageSpeed_Widget.php
(7.03 KB)
📄
PageSpeed_Widget_View.css
(2.62 KB)
📄
PageSpeed_Widget_View.js
(7.86 KB)
📄
PageSpeed_Widget_View.php
(1.09 KB)
📄
PageSpeed_Widget_View_FromApi.php
(3.71 KB)
📄
PgCache_ConfigLabels.php
(5.82 KB)
📄
PgCache_ContentGrabber.php
(70.95 KB)
📄
PgCache_Environment.php
(51.72 KB)
📄
PgCache_Flush.php
(16.32 KB)
📄
PgCache_Page.php
(1.6 KB)
📄
PgCache_Page_View.js
(6.32 KB)
📄
PgCache_Plugin.php
(14.22 KB)
📄
PgCache_Plugin_Admin.php
(14.49 KB)
📄
PgCache_QsExempts.php
(1.88 KB)
📄
Root_AdminActions.php
(3.05 KB)
📄
Root_AdminActivation.php
(6.52 KB)
📄
Root_AdminMenu.php
(8.37 KB)
📄
Root_Environment.php
(7.81 KB)
📄
Root_Loader.php
(6.94 KB)
📄
SetupGuide_Plugin_Admin.php
(48.8 KB)
📄
Support_AdminActions.php
(6.14 KB)
📄
Support_Page.php
(3.08 KB)
📄
Support_Page_View_DoneContent.php
(353 B)
📄
Support_Page_View_PageContent.php
(1.39 KB)
📄
SystemOpCache_AdminActions.php
(1.18 KB)
📄
SystemOpCache_Core.php
(2.48 KB)
📄
SystemOpCache_GeneralPage_View.php
(2.27 KB)
📄
SystemOpCache_Plugin_Admin.php
(3.3 KB)
📄
UsageStatistics_AdminActions.php
(1.14 KB)
📄
UsageStatistics_Core.php
(3.39 KB)
📄
UsageStatistics_GeneralPage.php
(1.6 KB)
📄
UsageStatistics_GeneralPage_View.php
(6.18 KB)
📄
UsageStatistics_Page.php
(8.4 KB)
📄
UsageStatistics_Page_DbRequests_View.php
(1.79 KB)
📄
UsageStatistics_Page_ObjectCacheLog_View.php
(1.97 KB)
📄
UsageStatistics_Page_PageCacheRequests_View.php
(1.86 KB)
📄
UsageStatistics_Page_View.css
(1.68 KB)
📄
UsageStatistics_Page_View.js
(23.2 KB)
📄
UsageStatistics_Page_View.php
(17.13 KB)
📄
UsageStatistics_Page_View_Ad.php
(688 B)
📄
UsageStatistics_Page_View_Disabled.php
(610 B)
📄
UsageStatistics_Page_View_Free.php
(635 B)
📄
UsageStatistics_Page_View_NoDebugMode.php
(615 B)
📄
UsageStatistics_Plugin.php
(2.89 KB)
📄
UsageStatistics_Plugin_Admin.php
(5.65 KB)
📄
UsageStatistics_Source_AccessLog.php
(17.47 KB)
📄
UsageStatistics_Source_DbQueriesLog.php
(6.04 KB)
📄
UsageStatistics_Source_ObjectCacheLog.php
(5.57 KB)
📄
UsageStatistics_Source_PageCacheLog.php
(6.11 KB)
📄
UsageStatistics_Source_Wpdb.php
(3.49 KB)
📄
UsageStatistics_Sources.php
(5.41 KB)
📄
UsageStatistics_Sources_Apc.php
(3.39 KB)
📄
UsageStatistics_Sources_Memcached.php
(4.58 KB)
📄
UsageStatistics_Sources_Redis.php
(4.69 KB)
📄
UsageStatistics_StorageReader.php
(2.81 KB)
📄
UsageStatistics_StorageWriter.php
(14.38 KB)
📄
UserExperience_DeferScripts_Extension.php
(7.04 KB)
📄
UserExperience_DeferScripts_Mutator.php
(2.78 KB)
📄
UserExperience_DeferScripts_Page_View.php
(3.91 KB)
📄
UserExperience_DeferScripts_Script.js
(6.14 KB)
📄
UserExperience_Emoji_Extension.php
(3.04 KB)
📄
UserExperience_GeneralPage.php
(1.72 KB)
📄
UserExperience_GeneralPage_View.php
(8.21 KB)
📄
UserExperience_LazyLoad_GoogleMaps_GoogleMapsEasy.php
(3.89 KB)
📄
UserExperience_LazyLoad_GoogleMaps_WPGoogleMapPlugin.php
(2.14 KB)
📄
UserExperience_LazyLoad_GoogleMaps_WPGoogleMaps.php
(3.94 KB)
📄
UserExperience_LazyLoad_Mutator.php
(9.18 KB)
📄
UserExperience_LazyLoad_Mutator_Picture.php
(2.52 KB)
📄
UserExperience_LazyLoad_Mutator_Unmutable.php
(2.88 KB)
📄
UserExperience_LazyLoad_Page_View.php
(6.46 KB)
📄
UserExperience_LazyLoad_Plugin.php
(9.17 KB)
📄
UserExperience_OEmbed_Extension.php
(795 B)
📄
UserExperience_Page.php
(527 B)
📄
UserExperience_Page_View.php
(695 B)
📄
UserExperience_Plugin_Admin.php
(3.49 KB)
📄
UserExperience_Plugin_Jquery.php
(1.4 KB)
📄
UserExperience_Preload_Requests_Extension.php
(6.15 KB)
📄
UserExperience_Preload_Requests_Page_View.php
(8.18 KB)
📄
UserExperience_Remove_CssJs_Extension.php
(6.79 KB)
📄
UserExperience_Remove_CssJs_Mutator.php
(4.45 KB)
📄
UserExperience_Remove_CssJs_Page_View.js
(15.98 KB)
📄
UserExperience_Remove_CssJs_Page_View.php
(14.59 KB)
📄
Util_Activation.php
(9.89 KB)
📄
Util_Admin.php
(25.03 KB)
📄
Util_AttachToActions.php
(7.65 KB)
📄
Util_Bus.php
(832 B)
📄
Util_ConfigLabel.php
(1.57 KB)
📄
Util_Content.php
(3.03 KB)
📄
Util_Debug.php
(6.38 KB)
📄
Util_DebugPurgeLog_Reader.php
(3.36 KB)
📄
Util_Environment.php
(42.46 KB)
📄
Util_Environment_Exception.php
(719 B)
📄
Util_Environment_Exceptions.php
(1.42 KB)
📄
Util_File.php
(13.11 KB)
📄
Util_Http.php
(5.87 KB)
📄
Util_Installed.php
(4.24 KB)
📄
Util_Mime.php
(2.9 KB)
📄
Util_PageSpeed.php
(33.92 KB)
📄
Util_PageUrls.php
(32.57 KB)
📄
Util_Request.php
(3.52 KB)
📄
Util_Rule.php
(13.83 KB)
📄
Util_Theme.php
(3.87 KB)
📄
Util_Ui.php
(83.11 KB)
📄
Util_UsageStatistics.php
(13.6 KB)
📄
Util_Widget.php
(7.88 KB)
📄
Util_WpFile.php
(16.48 KB)
📄
Util_WpFile_FilesystemChmodException.php
(1.66 KB)
📄
Util_WpFile_FilesystemCopyException.php
(1.79 KB)
📄
Util_WpFile_FilesystemMkdirException.php
(1.14 KB)
📄
Util_WpFile_FilesystemModifyException.php
(2.35 KB)
📄
Util_WpFile_FilesystemOperationException.php
(1.29 KB)
📄
Util_WpFile_FilesystemRmException.php
(1.14 KB)
📄
Util_WpFile_FilesystemRmdirException.php
(1.19 KB)
📄
Util_WpFile_FilesystemWriteException.php
(1.57 KB)
📄
Util_WpmuBlogmap.php
(8.06 KB)
📄
Varnish_Flush.php
(18.57 KB)
📄
Varnish_Plugin.php
(3.2 KB)
ðŸ“
extension-example
ðŸ“
inc
📄
index.html
(0 B)
ðŸ“
ini
ðŸ“
languages
ðŸ“
lib
📄
press.txt
(45.78 KB)
ðŸ“
pub
📄
readme.txt
(76.49 KB)
ðŸ“
vendor
📄
w3-total-cache-api.php
(22.29 KB)
📄
w3-total-cache-old-php.php
(1.25 KB)
📄
w3-total-cache.php
(2.83 KB)
ðŸ“
wp-content
Editing: Util_Admin.php
<?php /** * File: Util_Admin.php * * @package W3TC */ namespace W3TC; /** * Class: Util_Admin * * phpcs:disable WordPress.PHP.DiscouragedPHPFunctions.serialize_serialize * phpcs:disable WordPress.PHP.NoSilencedErrors.Discouraged * phpcs:disable WordPress.WP.AlternativeFunctions */ class Util_Admin { /** * Redirects when in WP Admin. * * @static * * @param array $params Parameters. * @param bool $check_referrer Check referrer. * @param string $page Page. */ public static function redirect( $params = array(), $check_referrer = false, $page = '' ) { $url = Util_Request::get_string( 'redirect' ); $page_url = Util_Request::get_string( 'page' ); if ( empty( $url ) ) { if ( $check_referrer && ! empty( $_SERVER['HTTP_REFERER'] ) ) { $url = isset( $_SERVER['HTTP_REFERER'] ) ? sanitize_text_field( wp_unslash( $_SERVER['HTTP_REFERER'] ) ) : ''; } else { $url = 'admin.php'; if ( empty( $page ) ) { $page = $page_url; } $params = array_merge( array( 'page' => $page ), $params ); } } Util_Environment::redirect( $url, $params ); } /** * Redirect function to current admin page with errors and messages specified. * * @static * * @param array $params Parameters. * @param array $errors Errors. * @param array $notes Notes. * @param bool $check_referrer Check referrer. * @return void */ public static function redirect_with_custom_messages( $params, $errors = null, $notes = null, $check_referrer = false ) { if ( empty( $errors ) && self::single_system_item( $notes ) ) { self::redirect( array_merge( $params, array( 'w3tc_note' => $notes[0] ) ), $check_referrer ); return; } if ( self::single_system_item( $errors ) && empty( $notes ) ) { self::redirect( array_merge( $params, array( 'w3tc_error' => $errors[0] ) ), $check_referrer ); return; } $message_id = uniqid(); update_option( 'w3tc_message', array( $message_id => array( 'errors' => $errors, 'notes' => $notes, ), ), 'yes' ); self::redirect( array_merge( $params, array( 'w3tc_message' => $message_id ) ), $check_referrer ); } /** * Special redirect with ability to pass custom_message_id based on $data. * query_string * actions - which actions to call on render * errors * notes * * @static * * @param array $data Data. */ public static function redirect_with_custom_messages2( $data ) { if ( ! isset( $data['query_string']['page'] ) ) { $data['query_string']['page'] = Util_Request::get_string( 'page' ); if ( 'w3tc_extensions' === $data['query_string']['page'] ) { $data['query_string']['extension'] = Util_Request::get_string( 'extension' ); $data['query_string']['action'] = Util_Request::get_string( 'action' ); } } $message_id = uniqid(); update_option( 'w3tc_message', array( $message_id => $data ), 'yes' ); $data['query_string']['w3tc_message'] = $message_id; Util_Environment::redirect( 'admin.php', $data['query_string'] ); } /** * Custom message id. * * @static * * @param array $errors Errors. * @param array $notes Notes. */ public static function custom_message_id( $errors = null, $notes = null ) { $message_id = uniqid(); update_option( 'w3tc_message', array( $message_id => array( 'errors' => $errors, 'notes' => $notes, ), ), 'yes' ); return 'w3tc_message=' . $message_id; } /** * Checks if contains single message item. * * @static * * @param array $a Array. * @return bool */ public static function single_system_item( $a ) { if ( ! is_array( $a ) || count( $a ) !== 1 ) { return false; } $first_key = array_keys( $a ); $first_key = $first_key[0]; $pos = strpos( $a[ $first_key ], ' ' ); if ( false === $pos ) { return true; } return false; } /** * Save config, can't decline save process. (difference from action_save). * * Do some actions on config keys update. * * Used in several places such as: * * 1. common config save * 2. import settings * * @static * * @param Config $current_config Current config. * @param Config $new_config New config. * @return bool * @throws \Exception Exception. */ public static function config_save( $current_config, $new_config ) { $master_config = ( $new_config->is_master() ? $new_config : Dispatcher::config_master() ); if ( $master_config->get_integer( 'common.instance_id', 0 ) === 0 ) { $master_config->set( 'common.instance_id', wp_rand() ); if ( ! $new_config->is_master() ) { $master_config->save(); } } $old_config = new Config(); $browsercache_dependencies = array(); if ( $new_config->get_boolean( 'browsercache.enabled' ) ) { $browsercache_dependencies = array_merge( $browsercache_dependencies, array( 'browsercache.rewrite', 'browsercache.cssjs.replace', 'browsercache.html.replace', 'browsercache.other.replace', ) ); if ( $new_config->get_boolean( 'browsercache.cssjs.replace' ) ) { $browsercache_dependencies = array_merge( $browsercache_dependencies, array( 'browsercache.cssjs.compression', 'browsercache.cssjs.expires', 'browsercache.cssjs.lifetime', 'browsercache.cssjs.cache.control', 'browsercache.cssjs.cache.policy', 'browsercache.cssjs.etag', 'browsercache.cssjs.w3tc', ) ); } if ( $new_config->get_boolean( 'browsercache.html.replace' ) ) { $browsercache_dependencies = array_merge( $browsercache_dependencies, array( 'browsercache.html.compression', 'browsercache.html.expires', 'browsercache.html.lifetime', 'browsercache.html.cache.control', 'browsercache.html.cache.policy', 'browsercache.html.etag', 'browsercache.html.w3tc', ) ); } if ( $new_config->get_boolean( 'browsercache.other.replace' ) ) { $browsercache_dependencies = array_merge( $browsercache_dependencies, array( 'browsercache.other.compression', 'browsercache.other.expires', 'browsercache.other.lifetime', 'browsercache.other.cache.control', 'browsercache.other.cache.policy', 'browsercache.other.etag', 'browsercache.other.w3tc', ) ); } $old_bc_dependencies_values = array(); $new_bc_dependencies_values = array(); foreach ( $browsercache_dependencies as $key ) { $old_bc_dependencies_values[] = $old_config->get( $key ); $new_bc_dependencies_values[] = $new_config->get( $key ); } if ( serialize( $old_bc_dependencies_values ) !== serialize( $new_bc_dependencies_values ) ) { $state_note = Dispatcher::config_state_note(); $state_note->set( 'common.show_note.flush_statics_needed', true ); } } /** * Show need empty page cache notification */ $cache_flush = Dispatcher::component( 'CacheFlush' ); if ( $cache_flush->flushable_posts() ) { $pgcache_dependencies = array_merge( $browsercache_dependencies, array( 'pgcache.debug', 'pgcache.cache.query', 'pgcache.cache.home', 'pgcache.cache.feed', 'pgcache.cache.nginx_handle_xml', 'pgcache.cache.ssl', 'pgcache.cache.404', 'pgcache.cache.headers', 'pgcache.compatibility', 'pgcache.remove_charset', 'pgcache.accept.uri', 'pgcache.accept.files', 'pgcache.accept.qs', 'pgcache.late_init', 'pgcache.mirrors.enabled', 'pgcache.reject.front_page', 'pgcache.reject.logged', 'pgcache.reject.logged_roles', 'pgcache.reject.uri', 'pgcache.reject.ua', 'pgcache.reject.cookie', 'pgcache.reject.request_head', 'dbcache.enabled', 'objectcache.enabled', 'minify.enabled', 'mobile.enabled', 'referrer.enabled', ) ); if ( $new_config->get_boolean( 'pgcache.mirrors.enabled' ) ) { $pgcache_dependencies = array_merge( $pgcache_dependencies, array( 'pgcache.mirrors.home_urls' ) ); } if ( $new_config->get_boolean( 'dbcache.enabled' ) ) { $pgcache_dependencies = array_merge( $pgcache_dependencies, array( 'dbcache.debug' ) ); } if ( $new_config->getf_boolean( 'objectcache.enabled' ) ) { $pgcache_dependencies = array_merge( $pgcache_dependencies, array( 'objectcache.debug' ) ); } if ( $new_config->get_boolean( 'minify.enabled' ) ) { $pgcache_dependencies = array_merge( $pgcache_dependencies, array( 'minify.auto', 'minify.debug', 'minify.rewrite', 'minify.html.enable', 'minify.html.engine', 'minify.html.inline.css', 'minify.html.inline.js', 'minify.html.strip.crlf', 'minify.html.comments.ignore', 'minify.css.enable', 'minify.css.engine', 'minify.css.groups', 'minify.js.enable', 'minify.js.engine', 'minify.js.groups', 'minify.htmltidy.options.clean', 'minify.htmltidy.options.hide-comments', 'minify.htmltidy.options.wrap', 'minify.reject.logged', 'minify.reject.ua', 'minify.reject.uri', ) ); } $modules = Dispatcher::component( 'ModuleStatus' ); if ( $modules->is_running( 'cdn' ) ) { $pgcache_dependencies = array_merge( $pgcache_dependencies, array( 'cdn.enabled', 'cdn.debug', 'cdn.engine', 'cdn.uploads.enable', 'cdn.includes.enable', 'cdn.includes.files', 'cdn.theme.enable', 'cdn.theme.files', 'cdn.minify.enable', 'cdn.custom.enable', 'cdn.custom.files', 'cdn.ftp.domain', 'cdn.ftp.ssl', 'cdn.s3.cname', 'cdn.s3.ssl', 'cdn.cf.cname', 'cdn.cf.ssl', 'cdn.cf2.cname', 'cdn.cf2.ssl', 'cdn.rscf.cname', 'cdn.rscf.ssl', 'cdn.azure.cname', 'cdn.azure.ssl', 'cdn.azuremi.cname', 'cdn.azuremi.ssl', 'cdn.mirror.domain', 'cdn.mirror.ssl', 'cdn.cotendo.domain', 'cdn.cotendo.ssl', 'cdn.edgecast.domain', 'cdn.edgecast.ssl', 'cdn.att.domain', 'cdn.att.ssl', 'cdn.reject.logged_roles', 'cdn.reject.roles', 'cdn.reject.ua', 'cdn.reject.uri', 'cdn.reject.files', ) ); } elseif ( $old_config->get_boolean( 'cdn.enabled' ) && ! $new_config->get_boolean( 'cdn.enabled' ) ) { $pgcache_dependencies = array_merge( $pgcache_dependencies, array( 'cdn.enabled' ) ); } if ( $new_config->get_boolean( 'mobile.enabled' ) ) { $pgcache_dependencies = array_merge( $pgcache_dependencies, array( 'mobile.rgroups' ) ); } if ( $new_config->get_boolean( 'referrer.enabled' ) ) { $pgcache_dependencies = array_merge( $pgcache_dependencies, array( 'referrer.rgroups' ) ); } if ( $new_config->get_boolean( 'browsercache.enabled' ) && $new_config->get_string( 'pgcache.engine' ) === 'file_generic' ) { $pgcache_dependencies = array_merge( $pgcache_dependencies, array( 'browsercache.html.last_modified', 'browsercache.other.last_modified', ) ); } $old_pgcache_dependencies_values = array(); $new_pgcache_dependencies_values = array(); foreach ( $pgcache_dependencies as $pgcache_dependency ) { $old_pgcache_dependencies_values[] = $old_config->get( $pgcache_dependency ); $new_pgcache_dependencies_values[] = $new_config->get( $pgcache_dependency ); } if ( serialize( $old_pgcache_dependencies_values ) !== serialize( $new_pgcache_dependencies_values ) ) { $state_note = Dispatcher::config_state_note(); $state_note->set( 'common.show_note.flush_posts_needed', true ); } } /** * Show need empty minify notification */ if ( $current_config->get_boolean( 'minify.enabled' ) && $new_config->get_boolean( 'minify.enabled' ) && ( ( $new_config->get_boolean( 'minify.css.enable' ) && ( $new_config->get_boolean( 'minify.auto' ) || count( $new_config->get_array( 'minify.css.groups' ) ) ) ) || ( $new_config->get_boolean( 'minify.js.enable' ) && ( $new_config->get_boolean( 'minify.auto' ) || count( $new_config->get_array( 'minify.js.groups' ) ) ) ) ) ) { $minify_dependencies = array_merge( $browsercache_dependencies, array( 'minify.auto', 'minify.debug', 'minify.options', 'minify.symlinks', 'minify.css.enable', 'minify.js.enable', ) ); if ( $new_config->get_boolean( 'minify.css.enable' ) && ( $new_config->get_boolean( 'minify.auto' ) || count( $new_config->get_array( 'minify.css.groups' ) ) ) ) { $minify_dependencies = array_merge( $minify_dependencies, array( 'minify.css.engine', 'minify.css.method', 'minify.css.strip.comments', 'minify.css.strip.crlf', 'minify.css.imports', 'minify.css.groups', 'minify.yuicss.path.java', 'minify.yuicss.path.jar', 'minify.yuicss.options.line-break', 'minify.csstidy.options.remove_bslash', 'minify.csstidy.options.compress_colors', 'minify.csstidy.options.compress_font-weight', 'minify.csstidy.options.lowercase_s', 'minify.csstidy.options.optimise_shorthands', 'minify.csstidy.options.remove_last_;', 'minify.csstidy.options.remove_space_before_important', 'minify.csstidy.options.case_properties', 'minify.csstidy.options.sort_properties', 'minify.csstidy.options.sort_selectors', 'minify.csstidy.options.merge_selectors', 'minify.csstidy.options.discard_invalid_selectors', 'minify.csstidy.options.discard_invalid_properties', 'minify.csstidy.options.css_level', 'minify.csstidy.options.preserve_css', 'minify.csstidy.options.timestamp', 'minify.csstidy.options.template', ) ); } if ( $new_config->get_boolean( 'minify.js.enable' ) && ( $new_config->get_boolean( 'minify.auto' ) || count( $new_config->get_array( 'minify.js.groups' ) ) ) ) { $minify_dependencies = array_merge( $minify_dependencies, array( 'minify.js.engine', 'minify.js.method', 'minify.js.combine.header', 'minify.js.combine.body', 'minify.js.combine.footer', 'minify.js.strip.comments', 'minify.js.strip.crlf', 'minify.js.groups', 'minify.yuijs.path.java', 'minify.yuijs.path.jar', 'minify.yuijs.options.line-break', 'minify.yuijs.options.nomunge', 'minify.yuijs.options.preserve-semi', 'minify.yuijs.options.disable-optimizations', 'minify.ccjs.path.java', 'minify.ccjs.path.jar', 'minify.ccjs.options.compilation_level', 'minify.ccjs.options.formatting', ) ); } $modules = Dispatcher::component( 'ModuleStatus' ); if ( $modules->is_running( 'cdn' ) ) { $minify_dependencies = array_merge( $minify_dependencies, array( 'cdn.engine', 'cdn.enabled' ) ); } elseif ( $old_config->get_boolean( 'cdn.enabled' ) && ! $new_config->get_boolean( 'cdn.enabled' ) ) { $minify_dependencies = array_merge( $minify_dependencies, array( 'cdn.enabled' ) ); } $old_minify_dependencies_values = array(); $new_minify_dependencies_values = array(); foreach ( $minify_dependencies as $minify_dependency ) { $old_minify_dependencies_values[] = $old_config->get( $minify_dependency ); $new_minify_dependencies_values[] = $new_config->get( $minify_dependency ); } if ( serialize( $old_minify_dependencies_values ) !== serialize( $new_minify_dependencies_values ) ) { $state_note = Dispatcher::config_state_note(); $state_note->set( 'minify.show_note.need_flush', true ); } } if ( $new_config->get_boolean( 'cdn.enabled' ) && ! Cdn_Util::is_engine_mirror( $new_config->get_string( 'cdn.engine' ) ) ) { /** * Show notification when CDN enabled */ if ( ! $old_config->get_boolean( 'cdn.enabled' ) ) { $state = Dispatcher::config_state(); $state->set( 'cdn.show_note_cdn_upload', true ); $state->save(); } /** * Show notification when Browser Cache settings changes */ $cdn_dependencies = array( 'browsercache.enabled' ); if ( $new_config->get_boolean( 'cdn.enabled' ) ) { $cdn_dependencies = array( 'browsercache.cssjs.compression', 'browsercache.cssjs.expires', 'browsercache.cssjs.lifetime', 'browsercache.cssjs.cache.control', 'browsercache.cssjs.cache.policy', 'browsercache.cssjs.etag', 'browsercache.cssjs.w3tc', 'browsercache.html.compression', 'browsercache.html.expires', 'browsercache.html.lifetime', 'browsercache.html.cache.control', 'browsercache.html.cache.policy', 'browsercache.html.etag', 'browsercache.html.w3tc', 'browsercache.other.compression', 'browsercache.other.expires', 'browsercache.other.lifetime', 'browsercache.other.cache.control', 'browsercache.other.cache.policy', 'browsercache.other.etag', 'browsercache.other.w3tc', ); } $old_cdn_dependencies_values = array(); $new_cdn_dependencies_values = array(); foreach ( $cdn_dependencies as $cdn_dependency ) { $old_cdn_dependencies_values[] = $old_config->get( $cdn_dependency ); $new_cdn_dependencies_values[] = $new_config->get( $cdn_dependency ); } if ( serialize( $old_cdn_dependencies_values ) !== serialize( $new_cdn_dependencies_values ) ) { $state = Dispatcher::config_state(); $state->set( 'cdn.show_note_cdn_reupload', true ); $state->save(); } } /** * Show need empty object cache notification */ if ( $current_config->getf_boolean( 'objectcache.enabled' ) ) { $objectcache_dependencies = array( 'objectcache.groups.global', 'objectcache.groups.nonpersistent', ); $old_objectcache_dependencies_values = array(); $new_objectcache_dependencies_values = array(); foreach ( $objectcache_dependencies as $objectcache_dependency ) { $old_objectcache_dependencies_values[] = $old_config->get( $objectcache_dependency ); $new_objectcache_dependencies_values[] = $new_config->get( $objectcache_dependency ); } if ( serialize( $old_objectcache_dependencies_values ) !== serialize( $new_objectcache_dependencies_values ) ) { $state_note = Dispatcher::config_state_note(); $state_note->set( 'objectcache.show_note.flush_needed', true ); } } do_action( 'w3tc_saved_options', $new_config ); /** * Save config */ try { $new_config->save(); } catch ( \Exception $ex ) { // try to fix environment, it potentially can be fixed silently don't show error here, it will be called again later in admin_notices. try { $environment = Dispatcher::component( 'Root_Environment' ); $environment->fix_in_wpadmin( $new_config ); } catch ( \Exception $ex ) { // phpcs:ignore Generic.CodeAnalysis.EmptyStatement.DetectedCatch // Do nothing. } // Retry save process and complain now on failure. try { $new_config->save(); } catch ( \Exception $ex ) { throw new \Exception( \wp_kses_post( sprintf( // Translators: 1 Opening HTML strong tag, 2 Closing HTML strong tag, 3 Error message. \__( '%1$sCan\'t change configuration%2$s: %3$s', 'w3-total-cache' ), '<strong>', '</strong>', $ex->getMessage() ) ) ); } } $w3_plugin_cdn = Dispatcher::component( 'Cdn_Core_Admin' ); /** * Empty caches on engine change or cache enable/disable */ if ( $old_config->get_string( 'pgcache.engine' ) !== $new_config->get_string( 'pgcache.engine' ) || $old_config->get_string( 'pgcache.enabled' ) !== $new_config->get_string( 'pgcache.enabled' ) ) { $pgcacheflush = Dispatcher::component( 'PgCache_Flush' ); $v = $pgcacheflush->flush(); } if ( $old_config->get_string( 'dbcache.engine' ) !== $new_config->get_string( 'dbcache.engine' ) || $old_config->get_string( 'dbcache.enabled' ) !== $new_config->get_string( 'dbcache.enabled' ) ) { w3tc_dbcache_flush(); } if ( $old_config->get_string( 'objectcache.engine' ) !== $new_config->get_string( 'objectcache.engine' ) || $old_config->getf_boolean( 'objectcache.enabled' ) !== $new_config->getf_boolean( 'objectcache.enabled' ) ) { w3tc_objectcache_flush(); } if ( $old_config->get_string( 'minify.engine' ) !== $new_config->get_string( 'minify.engine' ) || $old_config->get_string( 'minify.enabled' ) !== $new_config->get_string( 'minify.enabled' ) ) { w3tc_minify_flush(); } /** * Update CloudFront CNAMEs */ if ( $new_config->get_boolean( 'cdn.enabled' ) && in_array( $new_config->get_string( 'cdn.engine' ), array( 'cf', 'cf2' ), true ) ) { if ( 'cf' === $new_config->get_string( 'cdn.engine' ) ) { $old_cnames = $old_config->get_array( 'cdn.cf.cname' ); $new_cnames = $new_config->get_array( 'cdn.cf.cname' ); } else { $old_cnames = $old_config->get_array( 'cdn.cf2.cname' ); $new_cnames = $new_config->get_array( 'cdn.cf2.cname' ); } } /** * Refresh config */ $current_config->load(); /** * React to config changes */ $environment = Dispatcher::component( 'Root_Environment' ); $environment->fix_on_event( $new_config, 'config_change', $old_config ); /** * Auto upload browsercache files to CDN */ if ( $new_config->get_boolean( 'cdn.enabled' ) && 'ftp' === $new_config->get_string( 'cdn.engine' ) ) { self::cdn_delete_browsercache( $current_config ); self::cdn_upload_browsercache( $current_config ); } return true; } /** * Uploads minify files to CDN. * * @static * * @return void */ public static function cdn_upload_minify() { $w3_plugin_cdn = Dispatcher::component( 'Cdn_Plugin' ); $common = Dispatcher::component( 'Cdn_Core' ); $files = $w3_plugin_cdn->get_files_minify(); $upload = array(); $results = array(); foreach ( $files as $file ) { $upload[] = $common->build_file_descriptor( $common->docroot_filename_to_absolute_path( $file ), $common->uri_to_cdn_uri( $common->docroot_filename_to_uri( $file ) ) ); } $common->upload( $upload, true, $results ); } /** * Uploads Browser Cache .htaccess to FTP. * * @static * * @param Config $config Config. * @return void */ public static function cdn_upload_browsercache( $config ) { $common = Dispatcher::component( 'Cdn_Core' ); Dispatcher::component( 'Cdn_Core_Admin' ); $ce = Dispatcher::component( 'Cdn_Environment' ); $rules = $ce->rules_generate_for_ftp( $config ); if ( $config->get_boolean( 'browsercache.enabled' ) ) { $be = Dispatcher::component( 'BrowserCache_Environment' ); $rules .= $be->rules_cache_generate_for_ftp( $config ); } $cdn_path = Util_Rule::get_cdn_rules_path(); $tmp_path = W3TC_CACHE_TMP_DIR . '/' . $cdn_path; if ( @file_put_contents( $tmp_path, $rules ) ) { // phpcs:ignore WordPress.WP.AlternativeFunctions.file_system_read_file_put_contents $results = array(); $upload = array( $common->build_file_descriptor( $tmp_path, $cdn_path ) ); $common->upload( $upload, true, $results ); } } /** * Deletes Browser Cache .htaccess from FTP. * * @static * * @return void */ public static function cdn_delete_browsercache() { $common = Dispatcher::component( 'Cdn_Core' ); $cdn_path = Util_Rule::get_cdn_rules_path(); $tmp_path = W3TC_CACHE_TMP_DIR . '/' . $cdn_path; $results = array(); $delete = array( $common->build_file_descriptor( $tmp_path, $cdn_path ) ); $common->delete( $delete, false, $results ); } /** * Returns cookie domain. * * @static * * @return string */ public static function get_cookie_domain() { $site_url = get_option( 'siteurl' ); $parse_url = @wp_parse_url( $site_url ); if ( $parse_url && ! empty( $parse_url['host'] ) ) { return $parse_url['host']; } return isset( $_SERVER['HTTP_HOST'] ) ? sanitize_text_field( wp_unslash( $_SERVER['HTTP_HOST'] ) ) : ''; } /** * Returns current w3tc admin page. * * @static * * @return string */ public static function get_current_page() { $page = Util_Request::get_string( 'page' ); if ( substr( $page, 0, 5 ) === 'w3tc_' ) { return $page; } return 'w3tc_dashboard'; } /** * Returns current w3tc extension id. * * @static * * @return string */ public static function get_current_extension() { $page = Util_Request::get_string( 'page' ); $extension = Util_Request::get_string( 'extension' ); if ( substr( $page, 0, 5 ) === 'w3tc_' && ! empty( $extension ) ) { return $extension; } return ''; } /** * Check if current page is a W3TC admin page. * * @static * * @return bool */ public static function is_w3tc_admin_page() { $page_val = Util_Request::get_string( 'page' ); if ( ! empty( $page_val ) && 'w3tc_' === substr( $page_val, 0, 5 ) ) { return true; } $action_val = Util_Request::get_string( 'action' ); if ( ! empty( $action_val ) && 'w3tc_' === substr( $action_val, 0, 5 ) ) { return true; } return false; } /** * Returns current WordPress page. * * @static * * @return string */ public static function get_current_wp_page() { return Util_Request::get_string( 'page' ); } /** * Fix environment once an event occurs. * * @since 2.8.1 * @static * * @param Config $config W3TC configuration object. * @param string $event Event name (optional). * @return void */ public static function fix_on_event( Config $config, ?string $event = '' ): void { $environment = Dispatcher::component( 'Root_Environment' ); $environment->fix_on_event( $config, $event ); } }
Upload File
Create Folder