Asset CleanUp: Page Speed Booster - Version 1.3.2.5

Version Description

  • Bug Fix: 403 Forbidden error was returned when fetching assets within the Dashboard because of the wrong nonce check
  • Option to show on request all the settings (no tabs) within "Settings" plugin's area by appending '&wpacu_show_all' to the URL like: /wp-admin/admin.php?page=wpassetcleanup_settings&wpacu_show_all
Download this release

Release Info

Developer gabelivan
Plugin Icon 128x128 Asset CleanUp: Page Speed Booster
Version 1.3.2.5
Comparing to
See all releases

Code changes from version 1.2.7.7 to 1.3.2.5

Files changed (300) hide show
  1. assets/icons/handles/icon-jquery.png +0 -0
  2. assets/icons/icon-asset-cleanup.png +0 -0
  3. assets/icons/premium-plugins/LayerSlider.jpg +0 -0
  4. assets/icons/premium-plugins/elementor-pro.jpg +0 -0
  5. assets/icons/premium-plugins/elementor.svg +1 -0
  6. assets/icons/premium-plugins/gravityforms-blue.svg +17 -0
  7. assets/icons/premium-plugins/monarch.jpg +0 -0
  8. assets/icons/premium-plugins/oxygen.png +0 -0
  9. assets/icons/premium-plugins/revslider.png +0 -0
  10. assets/icons/premium-plugins/wpdatatables.jpg +0 -0
  11. assets/icons/themes/astra.png +0 -0
  12. assets/icons/themes/betheme.jpeg +0 -0
  13. assets/icons/themes/bridge.png +0 -0
  14. assets/icons/themes/burst.jpg +0 -0
  15. assets/icons/themes/divi.png +0 -0
  16. assets/icons/themes/enfold.png +0 -0
  17. assets/icons/themes/extra.png +0 -0
  18. assets/icons/themes/flatsome.svg +30 -0
  19. assets/icons/themes/generatepress.jpg +0 -0
  20. assets/icons/themes/kalium.jpg +0 -0
  21. assets/icons/themes/oceanwp.png +0 -0
  22. assets/icons/themes/salient.jpg +0 -0
  23. assets/icons/themes/scalia.jpg +0 -0
  24. assets/icons/themes/t-ark.jpg +0 -0
  25. assets/icons/themes/the7.jpg +0 -0
  26. assets/icons/themes/ultra.jpg +0 -0
  27. assets/icons/themes/vantage.jpg +0 -0
  28. assets/icons/themes/xtheme.svg +10 -0
  29. assets/images/asset-cleanup-logo.png +0 -0
  30. assets/images/wpacu-logo-transparent-bg-v1.png +0 -0
  31. assets/images/wpacu-upgrade-steps/wpacu-upgrade-step-1-deactivate.jpg +0 -0
  32. assets/images/wpacu-upgrade-steps/wpacu-upgrade-step-1-delete.jpg +0 -0
  33. assets/images/wpacu-upgrade-steps/wpacu-upgrade-step-2-choose-file.jpg +0 -0
  34. assets/images/wpacu-upgrade-steps/wpacu-upgrade-step-3-activate-plugin.jpg +0 -0
  35. assets/images/your-brain-on-a-slow-website-infographic.jpg +0 -0
  36. assets/script.min.js +1 -1
  37. assets/style.min.css +1 -1
  38. classes/AdminBar.php +115 -0
  39. classes/AssetsPagesManager.php +100 -0
  40. classes/BulkUnloads.php +25 -14
  41. classes/CleanUp.php +339 -0
  42. classes/HomePage.php +0 -78
  43. classes/Info.php +73 -0
  44. classes/Main.php +572 -372
  45. classes/Menu.php +73 -61
  46. classes/MetaBoxes.php +156 -0
  47. classes/Misc.php +344 -46
  48. classes/OptimiseAssets/MinifyCss.php +312 -0
  49. classes/OptimiseAssets/MinifyJs.php +432 -0
  50. classes/OptimiseAssets/OptimizeCommon.php +514 -0
  51. classes/OptimiseAssets/OptimizeCss.php +526 -0
  52. classes/OptimiseAssets/OptimizeJs.php +625 -0
  53. classes/OwnAssets.php +131 -78
  54. classes/Plugin.php +123 -26
  55. classes/Settings.php +195 -37
  56. classes/Sorting.php +235 -0
  57. classes/ThirdParty/Browser.php +1730 -0
  58. classes/Tools.php +491 -0
  59. classes/Update.php +204 -83
  60. early-triggers.php +38 -0
  61. freemius-load.php +57 -0
  62. freemius/assets/css/admin/account.css +1 -0
  63. freemius/assets/css/admin/add-ons.css +2 -0
  64. freemius/assets/css/admin/affiliation.css +1 -0
  65. freemius/assets/css/admin/checkout.css +1 -0
  66. freemius/assets/css/admin/common.css +2 -0
  67. freemius/assets/css/admin/connect.css +1 -0
  68. freemius/assets/css/admin/debug.css +1 -0
  69. freemius/assets/css/admin/dialog-boxes.css +2 -0
  70. freemius/assets/css/admin/gdpr-optin-notice.css +1 -0
  71. freemius/assets/css/admin/index.php +3 -0
  72. freemius/assets/css/customizer.css +1 -0
  73. freemius/assets/css/index.php +3 -0
  74. freemius/assets/img/index.php +3 -0
  75. freemius/assets/img/plugin-icon.png +0 -0
  76. freemius/assets/img/theme-icon.png +0 -0
  77. freemius/assets/index.php +3 -0
  78. freemius/assets/js/index.php +3 -0
  79. freemius/assets/js/nojquery.ba-postmessage.js +140 -0
  80. freemius/assets/js/nojquery.ba-postmessage.min.js +12 -0
  81. freemius/assets/js/postmessage.js +135 -0
  82. freemius/assets/scss/_colors.scss +79 -0
  83. freemius/assets/scss/_functions.scss +0 -0
  84. freemius/assets/scss/_load.scss +4 -0
  85. freemius/assets/scss/_mixins.scss +270 -0
  86. freemius/assets/scss/_start.scss +4 -0
  87. freemius/assets/scss/_vars.scss +6 -0
  88. freemius/assets/scss/admin/_ajax-loader.scss +49 -0
  89. freemius/assets/scss/admin/_auto-install.scss +33 -0
  90. freemius/assets/scss/admin/_buttons.scss +28 -0
  91. freemius/assets/scss/admin/_deactivation-feedback.scss +55 -0
  92. freemius/assets/scss/admin/_gdpr-consent.scss +81 -0
  93. freemius/assets/scss/admin/_license-activation.scss +47 -0
  94. freemius/assets/scss/admin/_license-key-resend.scss +68 -0
  95. freemius/assets/scss/admin/_modal-common.scss +194 -0
  96. freemius/assets/scss/admin/_multisite-options.scss +40 -0
  97. freemius/assets/scss/admin/_plugin-upgrade-notice.scss +8 -0
  98. freemius/assets/scss/admin/_subscription-cancellation.scss +30 -0
  99. freemius/assets/scss/admin/_themes.scss +21 -0
  100. freemius/assets/scss/admin/_tooltip.scss +66 -0
  101. freemius/assets/scss/admin/account.scss +302 -0
  102. freemius/assets/scss/admin/add-ons.scss +449 -0
  103. freemius/assets/scss/admin/affiliation.scss +97 -0
  104. freemius/assets/scss/admin/checkout.scss +5 -0
  105. freemius/assets/scss/admin/common.scss +220 -0
  106. freemius/assets/scss/admin/connect.scss +548 -0
  107. freemius/assets/scss/admin/debug.scss +135 -0
  108. freemius/assets/scss/admin/dialog-boxes.scss +10 -0
  109. freemius/assets/scss/admin/gdpr-optin-notice.scss +17 -0
  110. freemius/assets/scss/admin/index.php +3 -0
  111. freemius/assets/scss/customizer.scss +125 -0
  112. freemius/assets/scss/index.php +3 -0
  113. freemius/config.php +388 -0
  114. freemius/includes/class-freemius-abstract.php +597 -0
  115. freemius/includes/class-freemius.php +21794 -0
  116. freemius/includes/class-fs-admin-notices.php +321 -0
  117. freemius/includes/class-fs-api.php +625 -0
  118. freemius/includes/class-fs-logger.php +691 -0
  119. freemius/includes/class-fs-options.php +431 -0
  120. freemius/includes/class-fs-plugin-updater.php +1360 -0
  121. freemius/includes/class-fs-security.php +85 -0
  122. freemius/includes/class-fs-storage.php +524 -0
  123. freemius/includes/class-fs-user-lock.php +126 -0
  124. freemius/includes/customizer/class-fs-customizer-support-section.php +102 -0
  125. freemius/includes/customizer/class-fs-customizer-upsell-control.php +157 -0
  126. freemius/includes/customizer/index.php +3 -0
  127. freemius/includes/debug/class-fs-debug-bar-panel.php +64 -0
  128. freemius/includes/debug/debug-bar-start.php +52 -0
  129. freemius/includes/debug/index.php +3 -0
  130. freemius/includes/entities/class-fs-affiliate-terms.php +128 -0
  131. freemius/includes/entities/class-fs-affiliate.php +84 -0
  132. freemius/includes/entities/class-fs-billing.php +95 -0
  133. freemius/includes/entities/class-fs-entity.php +149 -0
  134. freemius/includes/entities/class-fs-payment.php +110 -0
  135. freemius/includes/entities/class-fs-plugin-info.php +34 -0
  136. freemius/includes/entities/class-fs-plugin-license.php +269 -0
  137. freemius/includes/entities/class-fs-plugin-plan.php +145 -0
  138. freemius/includes/entities/class-fs-plugin-tag.php +50 -0
  139. freemius/includes/entities/class-fs-plugin.php +142 -0
  140. freemius/includes/entities/class-fs-pricing.php +141 -0
  141. freemius/includes/entities/class-fs-scope-entity.php +29 -0
  142. freemius/includes/entities/class-fs-site.php +230 -0
  143. freemius/includes/entities/class-fs-subscription.php +125 -0
  144. freemius/includes/entities/class-fs-user.php +62 -0
  145. freemius/includes/entities/index.php +3 -0
  146. freemius/includes/fs-core-functions.php +1322 -0
  147. freemius/includes/fs-essential-functions.php +479 -0
  148. freemius/includes/fs-plugin-info-dialog.php +1143 -0
  149. freemius/includes/i18n.php +603 -0
  150. freemius/includes/index.php +3 -0
  151. freemius/includes/l10n.php +48 -0
  152. freemius/includes/managers/class-fs-admin-menu-manager.php +969 -0
  153. freemius/includes/managers/class-fs-admin-notice-manager.php +472 -0
  154. freemius/includes/managers/class-fs-cache-manager.php +326 -0
  155. freemius/includes/managers/class-fs-gdpr-manager.php +202 -0
  156. freemius/includes/managers/class-fs-key-value-storage.php +392 -0
  157. freemius/includes/managers/class-fs-license-manager.php +104 -0
  158. freemius/includes/managers/class-fs-option-manager.php +490 -0
  159. freemius/includes/managers/class-fs-plan-manager.php +162 -0
  160. freemius/includes/managers/class-fs-plugin-manager.php +220 -0
  161. freemius/includes/managers/index.php +3 -0
  162. freemius/includes/sdk/Exceptions/ArgumentNotExistException.php +9 -0
  163. freemius/includes/sdk/Exceptions/EmptyArgumentException.php +9 -0
  164. freemius/includes/sdk/Exceptions/Exception.php +74 -0
  165. freemius/includes/sdk/Exceptions/InvalidArgumentException.php +8 -0
  166. freemius/includes/sdk/Exceptions/OAuthException.php +12 -0
  167. freemius/includes/sdk/Exceptions/index.php +3 -0
  168. freemius/includes/sdk/FreemiusBase.php +215 -0
  169. freemius/includes/sdk/FreemiusWordPress.php +704 -0
  170. freemius/includes/sdk/LICENSE.txt +340 -0
  171. freemius/includes/sdk/index.php +3 -0
  172. freemius/includes/supplements/fs-essential-functions-1.1.7.1.php +43 -0
  173. freemius/includes/supplements/fs-essential-functions-2.2.1.php +45 -0
  174. freemius/includes/supplements/index.php +3 -0
  175. freemius/index.php +3 -0
  176. freemius/languages/freemius-da_DK.mo +0 -0
  177. freemius/languages/freemius-da_DK.po +2434 -0
  178. freemius/languages/freemius-en.mo +0 -0
  179. freemius/languages/freemius-en.po +2320 -0
  180. freemius/languages/freemius-es_ES.mo +0 -0
  181. freemius/languages/freemius-es_ES.po +2433 -0
  182. freemius/languages/freemius-fr_FR.mo +0 -0
  183. freemius/languages/freemius-fr_FR.po +2433 -0
  184. freemius/languages/freemius-he_IL.mo +0 -0
  185. freemius/languages/freemius-he_IL.po +2434 -0
  186. freemius/languages/freemius-hu_HU.mo +0 -0
  187. freemius/languages/freemius-hu_HU.po +2433 -0
  188. freemius/languages/freemius-it_IT.mo +0 -0
  189. freemius/languages/freemius-it_IT.po +2437 -0
  190. freemius/languages/freemius-ja_JP.mo +0 -0
  191. freemius/languages/freemius-ja_JP.po +2436 -0
  192. freemius/languages/freemius-nl_NL.mo +0 -0
  193. freemius/languages/freemius-nl_NL.po +2434 -0
  194. freemius/languages/freemius-ru_RU.mo +0 -0
  195. freemius/languages/freemius-ru_RU.po +2433 -0
  196. freemius/languages/freemius.pot +2317 -0
  197. freemius/languages/index.php +3 -0
  198. freemius/require.php +49 -0
  199. freemius/start.php +522 -0
  200. freemius/templates/account.php +792 -0
  201. freemius/templates/account/billing.php +431 -0
  202. freemius/templates/account/index.php +3 -0
  203. freemius/templates/account/partials/activate-license-button.php +54 -0
  204. freemius/templates/account/partials/addon.php +350 -0
  205. freemius/templates/account/partials/deactivate-license-button.php +36 -0
  206. freemius/templates/account/partials/index.php +3 -0
  207. freemius/templates/account/partials/site.php +336 -0
  208. freemius/templates/account/payments.php +59 -0
  209. freemius/templates/add-ons.php +197 -0
  210. freemius/templates/add-trial-to-pricing.php +31 -0
  211. freemius/templates/admin-notice.php +76 -0
  212. freemius/templates/ajax-loader.php +1 -0
  213. freemius/templates/auto-installation.php +249 -0
  214. freemius/templates/checkout.php +329 -0
  215. freemius/templates/connect.php +932 -0
  216. freemius/templates/contact.php +128 -0
  217. freemius/templates/debug.php +726 -0
  218. freemius/templates/debug/api-calls.php +155 -0
  219. freemius/templates/debug/index.php +3 -0
  220. freemius/templates/debug/logger.php +66 -0
  221. freemius/templates/debug/plugins-themes-sync.php +76 -0
  222. freemius/templates/debug/scheduled-crons.php +136 -0
  223. freemius/templates/email.php +49 -0
  224. freemius/templates/firewall-issues-js.php +59 -0
  225. freemius/templates/forms/affiliation.php +486 -0
  226. freemius/templates/forms/deactivation/contact.php +23 -0
  227. freemius/templates/forms/deactivation/form.php +497 -0
  228. freemius/templates/forms/deactivation/index.php +3 -0
  229. freemius/templates/forms/deactivation/retry-skip.php +24 -0
  230. freemius/templates/forms/index.php +3 -0
  231. freemius/templates/forms/license-activation.php +700 -0
  232. freemius/templates/forms/optout.php +267 -0
  233. freemius/templates/forms/premium-versions-upgrade-handler.php +205 -0
  234. freemius/templates/forms/premium-versions-upgrade-metadata.php +45 -0
  235. freemius/templates/forms/resend-key.php +247 -0
  236. freemius/templates/forms/subscription-cancellation.php +277 -0
  237. freemius/templates/forms/trial-start.php +181 -0
  238. freemius/templates/gdpr-optin-js.php +66 -0
  239. freemius/templates/index.php +3 -0
  240. freemius/templates/js/index.php +3 -0
  241. freemius/templates/js/jquery.content-change.php +58 -0
  242. freemius/templates/js/open-license-activation.php +37 -0
  243. freemius/templates/js/style-premium-theme.php +45 -0
  244. freemius/templates/partials/network-activation.php +81 -0
  245. freemius/templates/plugin-icon.php +20 -0
  246. freemius/templates/plugin-info/description.php +78 -0
  247. freemius/templates/plugin-info/features.php +114 -0
  248. freemius/templates/plugin-info/index.php +3 -0
  249. freemius/templates/plugin-info/screenshots.php +34 -0
  250. freemius/templates/powered-by.php +58 -0
  251. freemius/templates/pricing.php +171 -0
  252. freemius/templates/secure-https-header.php +39 -0
  253. freemius/templates/sticky-admin-notice-js.php +39 -0
  254. freemius/templates/tabs-capture-js.php +63 -0
  255. freemius/templates/tabs.php +190 -0
  256. readme.txt +210 -33
  257. templates/_admin-page-getting-started-areas/_benefits-fast-pages.php +37 -0
  258. templates/_admin-page-getting-started-areas/_how-it-works.php +27 -0
  259. templates/_admin-page-getting-started-areas/_lite-vs-pro.php +112 -0
  260. templates/_admin-page-getting-started-areas/_start-optimization.php +34 -0
  261. templates/_admin-page-getting-started-areas/_video-tutorials.php +38 -0
  262. templates/_admin-page-settings-bulk-changes/_assets-positions.php +9 -0
  263. templates/_admin-page-settings-bulk-changes/_bulk-unloaded.php +261 -0
  264. templates/_admin-page-settings-bulk-changes/_script-attrs.php +9 -0
  265. templates/_admin-page-settings-plugin-areas/_combine-loaded-files.php +199 -0
  266. templates/_admin-page-settings-plugin-areas/_common-files-unload.php +66 -0
  267. templates/_admin-page-settings-plugin-areas/_disable-xml-rpc-protocol.php +39 -0
  268. templates/_admin-page-settings-plugin-areas/_html-source-cleanup.php +210 -0
  269. templates/_admin-page-settings-plugin-areas/_minify-loaded-files.php +92 -0
  270. templates/_admin-page-settings-plugin-areas/_plugin-usage-settings.php +267 -0
  271. templates/_admin-page-settings-plugin-areas/_strip-the-fat.php +40 -0
  272. templates/_admin-page-settings-plugin-areas/_test-mode.php +41 -0
  273. templates/_top-area.php +16 -18
  274. templates/admin-page-assets-manager.php +27 -0
  275. templates/admin-page-child-pages-info.php +226 -0
  276. templates/admin-page-child-settings-homepage.php +83 -0
  277. templates/admin-page-get-help.php +13 -13
  278. templates/admin-page-getting-started.php +41 -0
  279. templates/admin-page-license.php +5 -5
  280. templates/admin-page-pages-info.php +0 -82
  281. templates/admin-page-settings-bulk-changes.php +40 -0
  282. templates/admin-page-settings-bulk-unloads.php +0 -264
  283. templates/admin-page-settings-homepage.php +0 -78
  284. templates/admin-page-settings-plugin.php +126 -253
  285. templates/admin-page-tools.php +79 -0
  286. templates/meta-box-loaded-assets/_asset-script-rows.php +51 -234
  287. templates/meta-box-loaded-assets/_asset-script-single-row.php +289 -0
  288. templates/meta-box-loaded-assets/_asset-style-rows.php +55 -218
  289. templates/meta-box-loaded-assets/_asset-style-single-row.php +255 -0
  290. templates/meta-box-loaded-assets/_inline_js.php +121 -0
  291. templates/meta-box-loaded-assets/default.php +0 -104
  292. templates/meta-box-loaded-assets/view-by-location.php +189 -0
  293. templates/meta-box-loaded-assets/view-by-position.php +112 -0
  294. templates/meta-box-loaded-assets/view-default.php +143 -0
  295. templates/meta-box-loaded.php +47 -25
  296. templates/meta-box-side-page-options.php +62 -0
  297. templates/meta-box.php +29 -5
  298. templates/settings-frontend.php +40 -12
  299. wpacu-load.php +41 -5
  300. wpacu.php +35 -20
assets/icons/handles/icon-jquery.png ADDED
Binary file
assets/icons/icon-asset-cleanup.png ADDED
Binary file
assets/icons/premium-plugins/LayerSlider.jpg ADDED
Binary file
assets/icons/premium-plugins/elementor-pro.jpg ADDED
Binary file
assets/icons/premium-plugins/elementor.svg ADDED
@@ -0,0 +1 @@
1
+ <svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 256 256"><defs><style>.cls-1{fill:url(#linear-gradient);}</style><linearGradient id="linear-gradient" x1="3.74" y1="252.26" x2="252.26" y2="3.74" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#2e2975"/><stop offset="1" stop-color="#f2295b"/></linearGradient></defs><title>elementor-gradient-256px</title><path class="cls-1" d="M243.24,0H12.76A12.76,12.76,0,0,0,0,12.76V243.24A12.76,12.76,0,0,0,12.76,256H243.24A12.76,12.76,0,0,0,256,243.24V12.76A12.76,12.76,0,0,0,243.24,0ZM93.87,184.89H71.11V71.11H93.87V184.89Zm91,0H116.62V162.13h68.27v22.76Zm0-45.51H116.62V116.62h68.27v22.76Zm0-45.51H116.62V71.11h68.27V93.87Z" transform="translate(0 0)"/></svg>
assets/icons/premium-plugins/gravityforms-blue.svg ADDED
@@ -0,0 +1,17 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <svg width="248px" height="279px" viewBox="0 0 248 279" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
3
+ <!-- Generator: Sketch 49.3 (51167) - http://www.bohemiancoding.com/sketch -->
4
+ <title>GF Blue Fill Logo</title>
5
+ <desc>Created with Sketch.</desc>
6
+ <defs></defs>
7
+ <g id="Dark" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
8
+ <g id="GF-Stroke-Logo" transform="translate(-727.000000, -134.000000)">
9
+ <g id="GF-Blue-Fill-Logo" transform="translate(727.000000, 134.000000)">
10
+ <path d="M223.492735,58.6304269 L147.95484,14.9305838 C141.399754,11.1848206 132.659848,9 123.919942,9 C115.179724,9 106.439817,11.1848206 99.8850437,14.9305838 L24.0345862,58.6304269 C10.6127878,66.7458313 0,84.5378947 0,100.145137 L0,187.856763 C0,203.463693 10.3005369,221.568008 24.0345862,229.371473 L99.8850437,273.071316 C106.439817,276.816767 115.179724,279.0019 123.919942,279.0019 C132.659848,279.0019 141.399754,276.816767 147.95484,273.071316 L223.804985,229.371473 C237.227096,221.255757 247.839884,203.463693 247.839884,187.856763 L247.839884,100.145137 C247.839884,84.2259557 237.539035,66.4338923 223.492735,58.6304269 Z" id="stroke-F-Copy" fill="#375767"></path>
11
+ <path d="M95.6646347,129.3158 L191.026345,129.3158 L191.026345,105 L95.8647747,105 C83.5568047,105 73.2501347,109.3028 65.2449547,117.6082 C46.4327747,137.7212 49.1345247,175.5457 49.1345247,177.1467 L50.0351147,188.354 L190.025745,188.354 L190.025745,151.1299 L165.609945,151.1299 L165.609945,164.1383 L73.7504547,164.1383 C74.2507847,156.1331 76.2520747,141.9239 83.2566147,134.5191 C86.3586147,130.9168 90.2611447,129.3158 95.6646347,129.3158 Z" id="Fill-21" fill="#E7E9EB"></path>
12
+ <path d="M225.670882,16.3598934 L200.770997,1.95492412 C198.610216,0.720191908 195.729242,0 192.848269,0 C189.967193,0 187.08622,0.720191908 184.925541,1.95492412 L159.922625,16.3598934 C155.498339,19.0350094 152,24.8998846 152,30.0445679 L152,58.9573321 C152,64.1019126 155.395411,70.0697164 159.922625,72.6420066 L184.925541,87.0469759 C187.08622,88.2816053 189.967193,89.0019 192.848269,89.0019 C195.729242,89.0019 198.610216,88.2816053 200.770997,87.0469759 L225.77381,72.6420066 C230.198199,69.9667878 233.696538,64.1019126 233.696538,58.9573321 L233.696538,30.0445679 C233.696538,24.7970588 230.301025,18.9321836 225.670882,16.3598934 Z" id="stroke-F" fill="#E7E9EB"></path>
13
+ <path d="M178.179283,56.2747335 C178.079741,57.3692984 177.383146,57.8669093 176.288581,57.8669093 L172.407833,57.8669093 C171.313268,57.8669093 170.915199,57.3692984 171.014741,56.2747335 L173.701482,39.0600231 C174.49752,34.08471 177.084619,31 182.955612,31 L214.200781,31 C215.295345,31 215.693414,31.4975114 215.593872,32.5920763 L215.096361,35.6767863 C214.996819,36.7713512 214.300323,37.2689621 213.205758,37.2689621 L183.851192,37.2689621 C181.960489,37.2689621 180.865925,38.2639849 180.567398,40.0551453 L180.368413,41.8462063 L208.628414,41.8462063 C209.722979,41.8462063 210.120948,42.3438172 209.921964,43.4383821 L209.424452,46.5230921 C209.32491,47.617657 208.628414,48.1151684 207.533849,48.1151684 L179.273848,48.1151684 L178.179283,56.2747335 Z" id="Path" fill="#375767"></path>
14
+ </g>
15
+ </g>
16
+ </g>
17
+ </svg>
assets/icons/premium-plugins/monarch.jpg ADDED
Binary file
assets/icons/premium-plugins/oxygen.png ADDED
Binary file
assets/icons/premium-plugins/revslider.png ADDED
Binary file
assets/icons/premium-plugins/wpdatatables.jpg ADDED
Binary file
assets/icons/themes/astra.png ADDED
Binary file
assets/icons/themes/betheme.jpeg ADDED
Binary file
assets/icons/themes/bridge.png ADDED
Binary file
assets/icons/themes/burst.jpg ADDED
Binary file
assets/icons/themes/divi.png ADDED
Binary file
assets/icons/themes/enfold.png ADDED
Binary file
assets/icons/themes/extra.png ADDED
Binary file
assets/icons/themes/flatsome.svg ADDED
@@ -0,0 +1,30 @@
1
+ <svg width="78" height="78" viewBox="0 0 78 78" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
2
+ <title>logo</title>
3
+ <desc>Created using Figma</desc>
4
+ <g id="Canvas" transform="translate(9211 -1154)">
5
+ <g id="logo">
6
+ <g id="Dark">
7
+ <g id="M/opacity">
8
+ <g id="Vector">
9
+ <use xlink:href="#path0_fill" transform="translate(-9211 1154)" fill="url(#paint0_linear)"/>
10
+ </g>
11
+ <g id="Vector" opacity="0.5">
12
+ <use xlink:href="#path1_fill" transform="translate(-9172 1154)" fill="url(#paint1_linear)"/>
13
+ </g>
14
+ </g>
15
+ </g>
16
+ </g>
17
+ </g>
18
+ <defs>
19
+ <linearGradient id="paint0_linear" x1="0" y1="0" x2="1" y2="0" gradientUnits="userSpaceOnUse" gradientTransform="matrix(2.38804e-15 77.998 -38.9997 4.776e-15 38.9997 -4.776e-15)">
20
+ <stop offset="0.00552486" stop-color="#BC7FFF"/>
21
+ <stop offset="1" stop-color="#6CA6D7"/>
22
+ </linearGradient>
23
+ <linearGradient id="paint1_linear" x1="0" y1="0" x2="1" y2="0" gradientUnits="userSpaceOnUse" gradientTransform="matrix(2.38804e-15 77.998 -38.9997 4.776e-15 38.9997 -4.776e-15)">
24
+ <stop offset="0.00552486" stop-color="#BC7FFF"/>
25
+ <stop offset="1" stop-color="#6CA6D7"/>
26
+ </linearGradient>
27
+ <path id="path0_fill" d="M 38.9997 77.998L 38.9997 67.0614L 30.3201 58.3819L 38.9997 49.702L 38.9997 38.7653L 24.8514 52.9137L 10.9369 38.999L 38.9997 10.9363L 38.9997 -9.16485e-12L 0 38.999L 38.9997 77.998Z"/>
28
+ <path id="path1_fill" d="M 6.00638e-07 10.9367L 28.0628 38.9994L 14.1483 52.9137L 6.00638e-07 38.7661L 6.00638e-07 49.7024L 8.68004 58.3823L 6.00638e-07 67.0618L 6.00638e-07 77.998L 19.6165 58.3823L 38.9997 38.9994L 6.00638e-07 0L 6.00638e-07 10.9367Z"/>
29
+ </defs>
30
+ </svg>
assets/icons/themes/generatepress.jpg ADDED
Binary file
assets/icons/themes/kalium.jpg ADDED
Binary file
assets/icons/themes/oceanwp.png ADDED
Binary file
assets/icons/themes/salient.jpg ADDED
Binary file
assets/icons/themes/scalia.jpg ADDED
Binary file
assets/icons/themes/t-ark.jpg ADDED
Binary file
assets/icons/themes/the7.jpg ADDED
Binary file
assets/icons/themes/ultra.jpg ADDED
Binary file
assets/icons/themes/vantage.jpg ADDED
Binary file
assets/icons/themes/xtheme.svg ADDED
@@ -0,0 +1,10 @@
1
+ <svg viewBox="0 0 314 314" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
2
+ <g stroke="none" stroke-width="1" fill-rule="evenodd">
3
+ <g transform="translate(-465.000000, -660.000000)">
4
+ <g transform="translate(465.000000, 660.000000)">
5
+ <polygon points="92.2385914 87 123.226879 87 157.525701 139.018555 192.196599 87.0859375 221.951847 87.0859375 174.820623 156.598633 223.402654 227.489258 191.967905 227.489258 157.755193 175.689453 122.392888 227.351562 91 227.351562 140.283513 156.523438"></polygon>
6
+ <path d="M157,314 C70.2912943,314 0,243.708706 0,157 C0,70.2912943 70.2912943,0 157,0 C243.708706,0 314,70.2912943 314,157 C314,243.708706 243.708706,314 157,314 Z M157,291 C231.006156,291 291,231.006156 291,157 C291,82.9938435 231.006156,23 157,23 C82.9938435,23 23,82.9938435 23,157 C23,231.006156 82.9938435,291 157,291 Z"></path>
7
+ </g>
8
+ </g>
9
+ </g>
10
+ </svg>
assets/images/asset-cleanup-logo.png ADDED
Binary file
assets/images/wpacu-logo-transparent-bg-v1.png ADDED
Binary file
assets/images/wpacu-upgrade-steps/wpacu-upgrade-step-1-deactivate.jpg CHANGED
Binary file
assets/images/wpacu-upgrade-steps/wpacu-upgrade-step-1-delete.jpg CHANGED
Binary file
assets/images/wpacu-upgrade-steps/wpacu-upgrade-step-2-choose-file.jpg CHANGED
Binary file
assets/images/wpacu-upgrade-steps/wpacu-upgrade-step-3-activate-plugin.jpg CHANGED
Binary file
assets/images/your-brain-on-a-slow-website-infographic.jpg ADDED
Binary file
assets/script.min.js CHANGED
@@ -1 +1 @@
1
- jQuery(document).ready(function(a){setTimeout(function(){jQuery("a[href*='admin.php?page=wpassetcleanup_feature_request']").attr("target","_blank")},1e3);var b={load:function(){b.getExternalFileSize();var c;a(".input-unload-on-this-page").on("click change",function(){a(this).prop("checked")?a(this).closest("tr").addClass("wpacu_not_load"):a(this).closest("tr").removeClass("wpacu_not_load")}),a(".wpacu_global_unload").click(function(){c=a(this).attr("data-handle"),a(this).prop("checked")?a(this).parent("label").addClass("wpacu_global_checked"):a(this).parent("label").removeClass("wpacu_global_checked")}),a(".wpacu_keep_bulk_rule").click(function(){a(this).prop("checked")&&a(this).parents("li").next().removeClass("remove_rule")}),a(".wpacu_remove_bulk_rule").click(function(){a(this).prop("checked")&&a(this).parents("li").addClass("remove_rule")}),a(".wpacu_bulk_unload").click(function(){a(this).prop("checked")?a(this).parent("label").addClass("wpacu_bulk_unload_active"):a(this).parent("label").removeClass("wpacu_bulk_unload_active")}),a(".wpacu_load_it_option").click(function(){var b=a(this).attr("data-handle");if(a(this).prop("checked")){a(this).parent("label").addClass("wpacu_global_unload_exception");var c="";a(this).hasClass("wpacu_style")?c="style":a(this).hasClass("wpacu_script")&&(c="script"),a("#"+c+"_"+b).prop("checked",!1).trigger("change")}else a(this).parent("label").removeClass("wpacu_global_unload_exception")})},getExternalFileSize:function(){a(".wpacu-external-file-size").each(function(){var b=a(this);a.post(wpacu_object.ajax_url,{action:"get_external_file_size",wpacu_remote_file:a(this).attr("data-src")},function(a){b.html(a)})})}};if(a("#wpacu_post_type_select").change(function(){a("#wpacu_post_type_form").submit()}),a("#wpacu_taxonomy_select").change(function(){a("#wpacu_taxonomy_form").submit()}),a("#wpacu_dashboard").click(function(){a(this).prop("checked")?a("#wpacu-settings-assets-retrieval-mode").fadeIn():a("#wpacu-settings-assets-retrieval-mode").fadeOut()}),a("#wpacu_disable_jquery_migrate").on("click",function(){return!a(this).is(":checked")||(!(!a(this).is(":checked")||!confirm(wpacu_object.jquery_migration_disable_confirm_msg))||(a(this).prop("checked",!1),!1))}),a("#wpacu_disable_comment_reply").on("click",function(){return!a(this).is(":checked")||(!(!a(this).is(":checked")||!confirm(wpacu_object.comment_reply_disable_confirm_msg))||(a(this).prop("checked",!1),!1))}),a(".wpacu_remove_rule").click(function(){var b=a(this).parents(".wpacu_global_rule_row");a(this).prop("checked")?b.addClass("selected"):b.removeClass("selected")}),a("#wpacu_wrap_assets").length>0&&b.load(),"undefined"==typeof wpacu_object||a("#wpacu_meta_box_content").length<1)return!1;var c={};"direct"===wpacu_object.dom_get_type?(c[wpacu_object.plugin_name+"_load"]=1,a.ajax({method:"GET",url:wpacu_object.page_url,data:c,cache:!1,complete:function(b,c){if("error"===b.statusText){var d=wpacu_object.ajax_direct_fetch_error;d=d.replace(/\{wpacu_output\}/,b.responseText),d=d.replace(/\{wpacu_status_code_error\}/,b.status),a("#wpacu_meta_box_content").html(d)}}}).done(function(c){var d=c.substring(c.lastIndexOf(wpacu_object.start_del)+wpacu_object.start_del.length,c.lastIndexOf(wpacu_object.end_del)),e={action:wpacu_object.plugin_name+"_get_loaded_assets",wpacu_list:d,post_id:wpacu_object.post_id,page_url:wpacu_object.page_url,tag_id:wpacu_object.tag_id};if("btoa"in window)try{c=c.replace(/[\u0250-\ue007]/g,""),c=c.replace(/[^\x00-\x7F]/g,""),e.contents=window.btoa(c)}catch(a){e.contents=""}a.post(wpacu_object.ajax_url,e,function(c){if(!c)return!1;a("#wpacu_meta_box_content").html(c),a("#wpacu_home_page_form").length>0&&a("#submit").show(),b.load()})})):"wp_remote_post"===wpacu_object.dom_get_type&&(c={action:wpacu_object.plugin_name+"_get_loaded_assets",post_id:wpacu_object.post_id,page_url:wpacu_object.page_url,tag_id:wpacu_object.tag_id},a.post(wpacu_object.ajax_url,c,function(c){if(!c)return!1;a("#wpacu_meta_box_content").html(c),a("#wpacu_home_page_form").length>0&&a("#submit").show(),b.load()}))});
1
+ function wpacuTabOpenSettingsArea(a,b){a.preventDefault();var c,d,e;for(d=document.getElementsByClassName("wpacu-settings-tab-content"),c=0;c<d.length;c++)d[c].style.display="none";for(e=document.getElementsByClassName("wpacu-settings-tab-link"),c=0;c<e.length;c++)e[c].className=e[c].className.replace(" active","");document.getElementById(b).style.display="table-cell",jQuery('a[href="#'+b+'"]').addClass("active"),jQuery("#wpacu-selected-tab-area").val(b)}if(jQuery(document).ready(function(a){function b(){if(!a("#wpacu_ajax_fetch_assets_list_dashboard_view").length)return!1;var b={};"direct"===wpacu_object.dom_get_type?(b[wpacu_object.plugin_name+"_load"]=1,b[wpacu_object.plugin_name+"_time_r"]=(new Date).getTime(),a.ajax({method:"GET",url:wpacu_object.page_url,data:b,cache:!1,complete:function(b,c){if("error"===b.statusText){var d=wpacu_object.ajax_direct_fetch_error;d=d.replace(/\{wpacu_output\}/,b.responseText),d=d.replace(/\{wpacu_status_code_error\}/,b.status),a("#wpacu_meta_box_content").html(d)}}}).done(function(b){var c=b.substring(b.lastIndexOf(wpacu_object.start_del)+wpacu_object.start_del.length,b.lastIndexOf(wpacu_object.end_del)),d={action:wpacu_object.plugin_name+"_get_loaded_assets",wpacu_list:c,post_id:wpacu_object.post_id,page_url:wpacu_object.page_url,tag_id:wpacu_object.tag_id,time_r:(new Date).getTime()};a.post(wpacu_object.ajax_url,d,function(b){if(!b)return!1;a("#wpacu_meta_box_content").html(b),a("#wpacu_home_page_form").length>0&&a("#submit").show(),setTimeout(function(){e.load()},200)})})):"wp_remote_post"===wpacu_object.dom_get_type&&(b={action:wpacu_object.plugin_name+"_get_loaded_assets",post_id:wpacu_object.post_id,page_url:wpacu_object.page_url,tag_id:wpacu_object.tag_id,time_r:(new Date).getTime()},a.post(wpacu_object.ajax_url,b,function(b){if(!b)return!1;a("#wpacu_meta_box_content").html(b),a("#wpacu_home_page_form").length>0&&a("#submit").show(),setTimeout(function(){e.load()},200)}))}a("#wpacu-mark-license-valid-button").click(function(){return confirm(wpacu_object.mark_license_valid_confirm)});var c,d;a("#wpacu-reset-drop-down").on("change keyup keydown mouseup mousedown click",function(){""===a(this).val()?(a("#wpacu-warning-read").removeClass("wpacu-visible"),a("#wpacu-reset-submit-btn").attr("disabled","disabled").removeClass("button-primary").addClass("button-secondary")):("reset_everything"===a(this).val()?a("#wpacu-license-data-remove-area").addClass("wpacu-visible"):a("#wpacu-license-data-remove-area").removeClass("wpacu-visible"),a("#wpacu-warning-read").addClass("wpacu-visible"),a("#wpacu-reset-submit-btn").removeAttr("disabled").removeClass("button-secondary").addClass("button-primary")),a(".wpacu-tools-area .wpacu-warning").hide(),c=a(this).find("option:selected"),a("#"+c.attr("data-id")).show()}),a("#wpacu-reset-submit-btn").on("click",function(){if("reset_settings"===a("#wpacu-reset-drop-down").val()?d=wpacu_object.reset_settings_confirm_msg:"reset_everything"===a("#wpacu-reset-drop-down").val()&&(d=wpacu_object.reset_everything_confirm_msg),!confirm(d))return!1;a("#wpacu-action-confirmed").val("yes"),setTimeout(function(){"yes"===a("#wpacu-action-confirmed").val()&&a("#wpacu-tools-form").submit()},1e3)});var e={load:function(){var b;a(".input-unload-on-this-page").on("click change",function(){a(this).prop("checked")?a(this).closest("tr").addClass("wpacu_not_load"):a(this).closest("tr").removeClass("wpacu_not_load")}),a(".wpacu-plugin-check-all").on("click",function(b){b.preventDefault();var c=a(this).attr("data-wpacu-plugin");a('table.wpacu_list_by_location[data-wpacu-plugin="'+c+'"]').find(".input-unload-on-this-page.wpacu-not-locked").prop("checked",!0).closest("tr").addClass("wpacu_not_load")}),a(".wpacu-plugin-uncheck-all").on("click",function(b){b.preventDefault();var c=a(this).attr("data-wpacu-plugin");a('table.wpacu_list_by_location[data-wpacu-plugin="'+c+'"]').find(".input-unload-on-this-page.wpacu-not-locked").prop("checked",!1).closest("tr").removeClass("wpacu_not_load")}),a(".wpacu_global_unload").click(function(){b=a(this).attr("data-handle"),a(this).prop("checked")?a(this).parent("label").addClass("wpacu_global_checked"):a(this).parent("label").removeClass("wpacu_global_checked")}),a(".wpacu_keep_bulk_rule").click(function(){a(this).prop("checked")&&a(this).parents("li").next().removeClass("remove_rule")}),a(".wpacu_remove_bulk_rule").click(function(){a(this).prop("checked")&&a(this).parents("li").addClass("remove_rule")}),a(".wpacu_bulk_unload").click(function(){a(this).prop("checked")?a(this).parent("label").addClass("wpacu_bulk_unload_active"):a(this).parent("label").removeClass("wpacu_bulk_unload_active")}),a(".wpacu_load_it_option").click(function(){var b=a(this).attr("data-handle");if(a(this).prop("checked")){a(this).parent("label").addClass("wpacu_global_unload_exception");var c="";a(this).hasClass("wpacu_style")?c="style":a(this).hasClass("wpacu_script")&&(c="script"),a("#"+c+"_"+b).prop("checked",!1).trigger("change")}else a(this).parent("label").removeClass("wpacu_global_unload_exception")}),a(".wpacu-external-file-size").on("click",function(b){b.preventDefault();var c,d=a(this);d.hide(),c=d.next(),c.show(),a.post(wpacu_object.ajax_url,{action:"get_external_file_size",wpacu_remote_file:d.attr("data-src")},function(a){c.html(a)})})}};a(".wpacu-dom-get-type-selection").change(function(){a(this).is(":checked")&&(a(".wpacu-dom-get-type-info").hide(),a("#"+a(this).attr("data-target")).fadeIn("fast"))}),a("#wpacu_post_type_select").change(function(){a("#wpacu_post_type_form").submit()}),a("#wpacu_taxonomy_select").change(function(){a("#wpacu_taxonomy_form").submit()}),a("#wpacu_dashboard").click(function(){a(this).prop("checked")?a("#wpacu-settings-assets-retrieval-mode").fadeIn("fast"):a("#wpacu-settings-assets-retrieval-mode").fadeOut("fast")}),a("#wpacu_frontend").click(function(){a(this).prop("checked")?a("#wpacu-settings-frontend-exceptions").fadeIn("fast"):a("#wpacu-settings-frontend-exceptions").fadeOut("fast")}),a("#wpacu_assets_list_layout").on("click change",function(){"by-location"===a(this).val()?a("#wpacu-assets-list-by-location-selected").fadeIn("fast"):a("#wpacu-assets-list-by-location-selected").fadeOut("fast")}),a("#wpacu_disable_jquery_migrate").on("click",function(){return!a(this).is(":checked")||(!(!a(this).is(":checked")||!confirm(wpacu_object.jquery_migration_disable_confirm_msg))||(a(this).prop("checked",!1),!1))}),a("#wpacu_disable_comment_reply").on("click",function(){return!a(this).is(":checked")||(!(!a(this).is(":checked")||!confirm(wpacu_object.comment_reply_disable_confirm_msg))||(a(this).prop("checked",!1),!1))}),a("#wpacu_combine_loaded_css_enable").click(function(){a(this).prop("checked")?a("#combine_loaded_css_info_area").css({opacity:1}):a("#combine_loaded_css_info_area").css({opacity:.4})}),a("#wpacu_combine_loaded_js_enable").click(function(){a(this).prop("checked")?a("#combine_loaded_js_info_area").css({opacity:1}):a("#combine_loaded_js_info_area").css({opacity:.4})}),a("#wpacu_minify_css_enable").click(function(){a(this).prop("checked")?a("#wpacu_minify_css_exceptions_area").css({opacity:1}):a("#wpacu_minify_css_exceptions_area").css({opacity:.4})}),a("#wpacu_minify_js_enable").click(function(){a(this).prop("checked")?a("#wpacu_minify_js_exceptions_area").css({opacity:1}):a("#wpacu_minify_js_exceptions_area").css({opacity:.4})}),a("#wpacu_remove_html_comments").click(function(){a(this).prop("checked")?a("#wpacu_remove_html_comments_area").css({opacity:1}):a("#wpacu_remove_html_comments_area").css({opacity:.4})}),a(".wpacu-combine-loaded-js-level").change(function(){a(this).is(":checked")&&(a(".wpacu_combine_loaded_js_level_area").removeClass("wpacu_active"),a("#"+a(this).attr("data-target")).addClass("wpacu_active"))});var f=a('#wpacu-update-button-area input[type="submit"]');if(f.click(function(){a("#wpacu-updating-settings").show()}),a("form#wpacu-settings-form").submit(function(){return f.attr("disabled","disabled"),!0}),a(".wpacu_remove_rule").click(function(){var b=a(this).parents(".wpacu_global_rule_row");a(this).prop("checked")?b.addClass("selected"):b.removeClass("selected")}),a(".wpacu_restore_position").click(function(){var b=a(this).parents(".wpacu_restore_position_row");a(this).prop("checked")?b.addClass("wpacu_selected"):b.removeClass("wpacu_selected")}),a(".wpacu_remove_global_attr").click(function(){var b=a(this).parents(".wpacu_remove_global_attr_row");a(this).prop("checked")?b.addClass("wpacu_selected"):b.removeClass("wpacu_selected")}),a("#wpacu_wrap_assets").length>0&&setTimeout(function(){e.load()},200),"undefined"==typeof wpacu_object||a("#wpacu_meta_box_content").length<1)return!1;b(),a(document).on("click",".wp-admin.post-php .edit-post-header__settings button.is-primary",function(){var c=function(){0===a(".edit-post-header__settings .is-saving").length&&(b(),clearInterval(d))},d=setInterval(c,900)})}),-1!==location.href.indexOf("#")){var hashFromUrl=location.href.substr(location.href.indexOf("#"));jQuery('a[href="'+hashFromUrl+'"]').trigger("click")}
assets/style.min.css CHANGED
@@ -1 +1 @@
1
- .wpacu-tabs,.wpacu-tabs nav a{position:relative;overflow:hidden}.wpacu-tabs{margin:0 auto 20px;width:100%;font-weight:300;font-size:20px}.wpacu-tabs nav{text-align:center}.wpacu-tabs nav ul{position:relative;display:-ms-flexbox;display:-webkit-flex;display:-moz-flex;display:-ms-flex;display:flex;margin:0 auto;padding:0;max-width:1200px;list-style:none;-ms-box-orient:horizontal;-ms-box-pack:center;-webkit-flex-flow:row wrap;-moz-flex-flow:row wrap;-ms-flex-flow:row wrap;flex-flow:row wrap;-webkit-justify-content:center;-moz-justify-content:center;-ms-justify-content:center;justify-content:center}.wpacu-tabs nav ul li{position:relative;z-index:1;display:block;margin:0;text-align:center;-webkit-flex:1;-moz-flex:1;-ms-flex:1;flex:1}.wpacu-tabs nav a{display:block;text-overflow:ellipsis;white-space:nowrap;line-height:2.5}.wpacu-tabs nav a span{vertical-align:middle;font-size:14px}.wpacu-tabs nav li.wpacu-tab-current a{color:#74777b}.wpacu-tabs nav a:focus{outline:0}.wpacu-tabs .dashicons{font-size:20px}.no-js .wpacu-content-wrap section{display:block;padding-bottom:2em;border-bottom:1px solid rgba(255,255,255,.6)}.no-flexbox nav ul{display:block}.no-flexbox nav ul li{min-width:15%;display:inline-block}@media screen and (max-width:58em){.wpacu-tabs nav a.icon span{display:none}.wpacu-tabs nav a:before{margin-right:0}}.wpacu-tabs-style-underline nav{background:#fff}.wpacu-tabs-style-underline nav a{color:#74777b;font-size:18px;text-transform:uppercase;text-decoration:none;padding:.25em 0 .5em;border-left:1px solid #e7ecea;-webkit-transition:color .2s;transition:color .2s}.wpacu-tabs-style-underline nav li:last-child a{border-right:1px solid #e7ecea}.wpacu-tabs-style-underline nav li a::after{position:absolute;bottom:0;left:0;width:100%;height:6px;background:#2CC185;content:'';-webkit-transition:-webkit-transform .3s;transition:transform .3s;-webkit-transform:translate3d(0,150%,0);transform:translate3d(0,150%,0)}.wpacu-tabs-style-underline nav li.wpacu-tab-current a::after{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.wpacu-tabs-style-underline nav a span{font-weight:700}.wpacu-tabs-style-topline{max-width:1200px;margin:20px auto;width:100%;font-weight:300;text-decoration:none}.wpacu-tabs-style-topline nav li{border:1px solid rgba(40,44,42,.1)}.wpacu-tabs-style-topline nav li:not(:last-child){border-right:none}.wpacu-tabs-style-topline nav li.wpacu-tab-current{border-top-color:#0085ba;border-bottom:none}.wpacu-tabs-style-topline nav a{padding:20px 10px;background:rgba(40,44,42,.05);color:#74777b;line-height:1;-webkit-transition:color .2s;transition:color .2s;text-decoration:none}.wpacu-tabs-style-topline nav a:focus,.wpacu-tabs-style-topline nav a:hover{color:#0085ba}.wpacu-tabs-style-topline nav li.wpacu-tab-current a{background:0 0;box-shadow:inset 0 3px 0 #0085ba;color:#0085ba}.wpacu-tabs-style-topline nav li.wpacu-tab-current a span:not(.dashicons){font-weight:600}.wpacu-tabs-style-topline nav a span{text-transform:uppercase;font-weight:400}.wpacu-script-attributes-area{margin:20px 0 0}.wpacu-script-attributes-area.wpacu-lite ul.wpacu-script-attributes-settings{padding:5px 7px}.wpacu-script-attributes-area.wpacu-lite ul.wpacu-script-attributes-settings.wpacu-first{margin:0 28px 0 0}.wpacu-script-attributes-area.wpacu-lite ul.wpacu-script-attributes-settings li{margin:0 16px 0 0}.wpacu-script-attributes-area.wpacu-lite ul.wpacu-script-attributes-settings li:last-child{margin:0 2px 0 0}.wpacu-script-attributes-area .wpacu-script-attributes-settings{background:#fff;border:1px solid #eee;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;padding:5px 10px;list-style:none;display:inline-block;margin:0}.widefat .check-column.wpacu_check,body.toplevel_page_wpassetcleanup_settings .notice{padding:10px}.wpacu-script-attributes-area .wpacu-script-attributes-settings.wpacu-first{margin:0 34px 0 0}.wpacu-script-attributes-area .wpacu-script-attributes-settings li{float:left;margin:0 17px 0 0}.wpacu-script-attributes-area .wpacu-script-attributes-settings li:first-child{margin:0 7px 0 0}.wpacu-script-attributes-area .wpacu-script-attributes-settings li:last-child{margin:0}.wpacu-script-attributes-area .wpacu-script-attributes-settings:hover{background:#f2faf2}tr.wpacu_not_load td,tr.wpacu_not_load th{background:#FFE1E1!important}.dashicons-wpacu{width:17px;height:17px;margin:2px 0 0;font-size:16px;text-decoration:none}body[class*=wpassetcleanup] #footer-left{border-left:2px solid green;padding-left:10px}#wpacu_meta_box_content{width:99%}#wpacu_meta_box_content h3{margin-left:0;padding-left:0}#wpacu_meta_box_content div.wpacu_note,#wpacu_wrap_assets div.wpacu_note{padding:10px;background-color:#f5f5f5}#wpacu_meta_box_content .dashicons.dashicons-warning{color:#c00}#wpacu_meta_box_content div.wpacu_warning,#wpacu_wrap_assets div.wpacu_warning{border:1px solid #c00}#wpacu_meta_box_content div.wpacu_verified{padding:10px;background-color:#f5f5f5;border-left:1px solid #ddd}#wpacu_meta_box_content div.wpacu_verified span{color:#0073aa;font-weight:700}#wpacu_meta_box_content ul.wpacu_asset_options{margin:0;padding:0}#wpacu_meta_box_content ul.wpacu_asset_options.wpacu_exception_options_area{margin-bottom:14px}#wpacu_meta_box_content ul.wpacu_asset_options li{list-style:none;display:inline-block;margin:0}#wpacu_wrap_assets img,.wpacu_asset_row td label{display:inline-block!important}#wpacu_meta_box_content ul.wpacu_asset_options label{margin-right:5px;font-weight:400}#wpacu_wrap_assets{color:#000!important;text-align:left;clear:both;width:90%;padding:20px;margin:30px 0 0 15px;border:1px solid #cdcdcd;z-index:10000!important;position:relative;background-color:#fff}#wpacu_wrap_assets p{margin:10px 0;line-height:22px;text-align:left;font-weight:400}#wpacu_wrap_assets h1{margin:0 0 20px;font-size:160%;text-align:left}#wpacu_wrap_assets h3{margin:20px 0;font-size:130%}.wpacu_verified{margin:0 0 10px}.wpacu_asset_row td{padding:10px}.wpacu_asset_row td p{padding:0;margin-bottom:10px;word-wrap:break-word}.wpacu_asset_row td label{cursor:pointer!important;font-size:100%;font-weight:400}.wpacu_asset_row td label span{font-size:100%!important}.wpacu_asset_row td.wpacu_check{width:50px}.asset-table-extra-info td{padding:5px}body.wp-admin .wpacu_asset_row td.wpacu_check{width:25px}.wpacu_asset_row .dashicons{color:red}label.wpacu_add_global{cursor:pointer}label.wpacu_global_checked{font-weight:700;color:#d54e21}label.wpacu_global_unload_exception{font-weight:700!important}label.wpacu_bulk_unload_active{color:#d54e21}tr.wpacu_global_rule_row.selected{background:#e7e7e7}.nav-tab-wrapper{border-bottom:1px solid #ccc;width:95%}ul.wpacu_asset_options{margin:0;padding:0}ul.wpacu_asset_options li{margin:0;list-style:none;display:inline-block}ul.wpacu_asset_options li.remove_rule label{font-weight:700}ul.wpacu_asset_options label{margin-right:20px;font-weight:400}ul.wpacu_asset_options label input{margin-right:4px}.wp-asset-clean-up,.wp-asset-clean-up div,.wp-asset-clean-up li,.wp-asset-clean-up p,.wp-list-table,.wp-list-table div,.wp-list-table li,.wp-list-table p{font-weight:400}.wp-asset-clean-up.widefat{width:99%}.wpacu_widefat,.wpacu_widefat td{border:1px solid #e5e5e5!important}.wpacu_striped>tbody>:nth-child(odd),ul.wpacu_striped>:nth-child(odd){background-color:#f9f9f9!important}.wpacu_update_btn{-moz-box-shadow:inset 0 1px 0 0 #54a3f7!important;-webkit-box-shadow:inset 0 1px 0 0 #54a3f7!important;box-shadow:inset 0 1px 0 0 #54a3f7!important;background:-webkit-gradient(linear,left top,left bottom,color-stop(.05,#007dc1),color-stop(1,#0061a7))!important;background:-moz-linear-gradient(top,#007dc1 5%,#0061a7 100%)!important;background:-webkit-linear-gradient(top,#007dc1 5%,#0061a7 100%)!important;background:-o-linear-gradient(top,#007dc1 5%,#0061a7 100%)!important;background:-ms-linear-gradient(top,#007dc1 5%,#0061a7 100%)!important;background:linear-gradient(to bottom,#007dc1 5%,#0061a7 100%)!important;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#007dc1', endColorstr='#0061a7', GradientType=0)!important;background-color:#007dc1!important;-moz-border-radius:3px!important;-webkit-border-radius:3px!important;border-radius:3px!important;border:1px solid #124d77!important;display:inline-block!important;cursor:pointer!important;color:#fff!important;font-size:15px!important;padding:10px 24px!important;text-decoration:none!important;text-shadow:0 1px 0 #154682!important;height:auto!important;line-height:normal!important}.wpacu-btns .btn:focus,.wpacu-btns .btn:hover,.wpacu-btns a{text-decoration:none}.wpacu_update_btn:hover{background:-webkit-gradient(linear,left top,left bottom,color-stop(.05,#0061a7),color-stop(1,#007dc1))!important;background:-moz-linear-gradient(top,#0061a7 5%,#007dc1 100%)!important;background:-webkit-linear-gradient(top,#0061a7 5%,#007dc1 100%)!important;background:-o-linear-gradient(top,#0061a7 5%,#007dc1 100%)!important;background:-ms-linear-gradient(top,#0061a7 5%,#007dc1 100%)!important;background:linear-gradient(to bottom,#0061a7 5%,#007dc1 100%)!important;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#0061a7', endColorstr='#007dc1', GradientType=0)!important;background-color:#0061a7!important}.wpacu_update_btn:active{position:relative!important;top:1px!important}ul.hire-reasons{margin-bottom:20px}ul.hire-reasons li{font-size:14px;line-height:22px;margin-bottom:12px}ul.hire-reasons li .dashicons{font-size:23px;line-height:23px}ul.hire-reasons li .dashicons.dashicons-yes{color:green}ol.getting-started li{font-size:14px;line-height:22px;margin-bottom:8px}.wpacu-get-help-wrap p{font-size:14px}.wpacu-btns .btn{display:inline-block;font-weight:400;line-height:1.25;text-align:center;white-space:nowrap;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border:1px solid transparent;padding:.5rem 1rem;font-size:1rem;-webkit-border-radius:.25rem;-moz-border-radius:.25rem;border-radius:.25rem;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.wpacu-btns .btn.focus,.wpacu-btns .btn:focus{outline:0;-webkit-box-shadow:0 0 0 2px rgba(2,117,216,.25);box-shadow:0 0 0 2px rgba(2,117,216,.25)}.wpacu-btns .btn.disabled,.wpacu-btns .btn:disabled{cursor:not-allowed;opacity:.65}.wpacu-btns .btn.active,.wpacu-btns .btn:active{background-image:none}.wpacu-btns a.btn.disabled,.wpacu-btns fieldset[disabled] a.btn{pointer-events:none}.wpacu-btns .btn-primary{color:#fff;background-color:#0275d8;border-color:#0275d8}.wpacu-btns .btn-primary:hover{color:#fff;background-color:#025aa5;border-color:#01549b}.wpacu-btns .btn-primary.focus,.wpacu-btns .btn-primary:focus{-webkit-box-shadow:0 0 0 2px rgba(2,117,216,.5);box-shadow:0 0 0 2px rgba(2,117,216,.5)}.wpacu-btns .btn-primary.disabled,.wpacu-btns .btn-primary:disabled{background-color:#0275d8;border-color:#0275d8}.wpacu-btns .btn-primary.active,.wpacu-btns .btn-primary:active,.wpacu-btns .show>.btn-primary.dropdown-toggle{color:#fff;background-color:#025aa5;background-image:none;border-color:#01549b}.wpacu-btns .btn-secondary{color:#292b2c;background-color:#fff;border-color:#ccc}.wpacu-btns .btn-secondary:hover{color:#292b2c;background-color:#e6e6e6;border-color:#adadad}.wpacu-btns .btn-secondary.focus,.wpacu-btns .btn-secondary:focus{-webkit-box-shadow:0 0 0 2px rgba(204,204,204,.5);box-shadow:0 0 0 2px rgba(204,204,204,.5)}.wpacu-btns .btn-secondary.disabled,.wpacu-btns .btn-secondary:disabled{background-color:#fff;border-color:#ccc}.wpacu-btns .btn-secondary.active,.wpacu-btns .btn-secondary:active,.wpacu-btns .show>.btn-secondary.dropdown-toggle{color:#292b2c;background-color:#e6e6e6;background-image:none;border-color:#adadad}.wpacu-btns .btn-info{color:#fff;background-color:#5bc0de;border-color:#5bc0de}.wpacu-btns .btn-info:hover{color:#fff;background-color:#31b0d5;border-color:#2aabd2}.wpacu-btns .btn-info.focus,.wpacu-btns .btn-info:focus{-webkit-box-shadow:0 0 0 2px rgba(91,192,222,.5);box-shadow:0 0 0 2px rgba(91,192,222,.5)}.wpacu-btns .btn-info.disabled,.wpacu-btns .btn-info:disabled{background-color:#5bc0de;border-color:#5bc0de}.wpacu-btns .btn-info.active,.wpacu-btns .btn-info:active,.wpacu-btns .show>.btn-info.dropdown-toggle{color:#fff;background-color:#31b0d5;background-image:none;border-color:#2aabd2}.wpacu-btns .btn-success{color:#fff;background-color:#5cb85c;border-color:#5cb85c}.wpacu-btns .btn-success:hover{color:#fff;background-color:#449d44;border-color:#419641}.wpacu-btns .btn-success.focus,.wpacu-btns .btn-success:focus{-webkit-box-shadow:0 0 0 2px rgba(92,184,92,.5);box-shadow:0 0 0 2px rgba(92,184,92,.5)}.wpacu-btns .btn-success.disabled,.wpacu-btns .btn-success:disabled{background-color:#5cb85c;border-color:#5cb85c}.wpacu-btns .btn-success.active,.wpacu-btns .btn-success:active,.wpacu-btns .show>.btn-success.dropdown-toggle{color:#fff;background-color:#449d44;background-image:none;border-color:#419641}.wpacu-btns .btn-warning{color:#fff;background-color:#f0ad4e;border-color:#f0ad4e}.wpacu-btns .btn-warning:hover{color:#fff;background-color:#ec971f;border-color:#eb9316}.wpacu-btns .btn-warning.focus,.wpacu-btns .btn-warning:focus{-webkit-box-shadow:0 0 0 2px rgba(240,173,78,.5);box-shadow:0 0 0 2px rgba(240,173,78,.5)}.wpacu-btns .btn-warning.disabled,.wpacu-btns .btn-warning:disabled{background-color:#f0ad4e;border-color:#f0ad4e}.wpacu-btns .btn-warning.active,.wpacu-btns .btn-warning:active,.wpacu-btns .show>.btn-warning.dropdown-toggle{color:#fff;background-color:#ec971f;background-image:none;border-color:#eb9316}.wpacu-btns .btn-danger{color:#fff;background-color:#d9534f;border-color:#d9534f}.wpacu-btns .btn-danger:hover{color:#fff;background-color:#c9302c;border-color:#c12e2a}.wpacu-btns .btn-danger.focus,.wpacu-btns .btn-danger:focus{-webkit-box-shadow:0 0 0 2px rgba(217,83,79,.5);box-shadow:0 0 0 2px rgba(217,83,79,.5)}.wpacu-btns .btn-danger.disabled,.wpacu-btns .btn-danger:disabled{background-color:#d9534f;border-color:#d9534f}.wpacu-btns .btn-danger.active,.wpacu-btns .btn-danger:active,.wpacu-btns .show>.btn-danger.dropdown-toggle{color:#fff;background-color:#c9302c;background-image:none;border-color:#c12e2a}.wpacu-btns .btn-outline-primary{color:#0275d8;background-image:none;background-color:transparent;border-color:#0275d8}.wpacu-btns .btn-outline-primary:hover{color:#fff;background-color:#0275d8;border-color:#0275d8}.wpacu-btns .btn-outline-primary.focus,.wpacu-btns .btn-outline-primary:focus{-webkit-box-shadow:0 0 0 2px rgba(2,117,216,.5);box-shadow:0 0 0 2px rgba(2,117,216,.5)}.wpacu-btns .btn-outline-primary.disabled,.wpacu-btns .btn-outline-primary:disabled{color:#0275d8;background-color:transparent}.wpacu-btns .btn-outline-primary.active,.wpacu-btns .btn-outline-primary:active,.wpacu-btns .show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#0275d8;border-color:#0275d8}.wpacu-btns .btn-outline-secondary{color:#ccc;background-image:none;background-color:transparent;border-color:#ccc}.wpacu-btns .btn-outline-secondary:hover{color:#fff;background-color:#ccc;border-color:#ccc}.wpacu-btns .btn-outline-secondary.focus,.wpacu-btns .btn-outline-secondary:focus{-webkit-box-shadow:0 0 0 2px rgba(204,204,204,.5);box-shadow:0 0 0 2px rgba(204,204,204,.5)}.wpacu-btns .btn-outline-secondary.disabled,.wpacu-btns .btn-outline-secondary:disabled{color:#ccc;background-color:transparent}.wpacu-btns .btn-outline-secondary.active,.wpacu-btns .btn-outline-secondary:active,.wpacu-btns .show>.btn-outline-secondary.dropdown-toggle{color:#fff;background-color:#ccc;border-color:#ccc}.wpacu-btns .btn-outline-info{color:#5bc0de;background-image:none;background-color:transparent;border-color:#5bc0de}.wpacu-btns .btn-outline-info:hover{color:#fff;background-color:#5bc0de;border-color:#5bc0de}.wpacu-btns .btn-outline-info.focus,.wpacu-btns .btn-outline-info:focus{-webkit-box-shadow:0 0 0 2px rgba(91,192,222,.5);box-shadow:0 0 0 2px rgba(91,192,222,.5)}.wpacu-btns .btn-outline-info.disabled,.wpacu-btns .btn-outline-info:disabled{color:#5bc0de;background-color:transparent}.wpacu-btns .btn-outline-info.active,.wpacu-btns .btn-outline-info:active,.wpacu-btns .show>.btn-outline-info.dropdown-toggle{color:#fff;background-color:#5bc0de;border-color:#5bc0de}.wpacu-btns .btn-outline-success{color:#5cb85c;background-image:none;background-color:transparent;border-color:#5cb85c}.wpacu-btns .btn-outline-success:hover{color:#fff;background-color:#5cb85c;border-color:#5cb85c}.wpacu-btns .btn-outline-success.focus,.wpacu-btns .btn-outline-success:focus{-webkit-box-shadow:0 0 0 2px rgba(92,184,92,.5);box-shadow:0 0 0 2px rgba(92,184,92,.5)}.wpacu-btns .btn-outline-success.disabled,.wpacu-btns .btn-outline-success:disabled{color:#5cb85c;background-color:transparent}.wpacu-btns .btn-outline-success.active,.wpacu-btns .btn-outline-success:active,.wpacu-btns .show>.btn-outline-success.dropdown-toggle{color:#fff;background-color:#5cb85c;border-color:#5cb85c}.wpacu-btns .btn-outline-warning{color:#f0ad4e;background-image:none;background-color:transparent;border-color:#f0ad4e}.wpacu-btns .btn-outline-warning:hover{color:#fff;background-color:#f0ad4e;border-color:#f0ad4e}.wpacu-btns .btn-outline-warning.focus,.wpacu-btns .btn-outline-warning:focus{-webkit-box-shadow:0 0 0 2px rgba(240,173,78,.5);box-shadow:0 0 0 2px rgba(240,173,78,.5)}.wpacu-btns .btn-outline-warning.disabled,.wpacu-btns .btn-outline-warning:disabled{color:#f0ad4e;background-color:transparent}.wpacu-btns .btn-outline-warning.active,.wpacu-btns .btn-outline-warning:active,.wpacu-btns .show>.btn-outline-warning.dropdown-toggle{color:#fff;background-color:#f0ad4e;border-color:#f0ad4e}.wpacu-btns .btn-outline-danger{color:#d9534f;background-image:none;background-color:transparent;border-color:#d9534f}.wpacu-btns .btn-outline-danger:hover{color:#fff;background-color:#d9534f;border-color:#d9534f}.wpacu-btns .btn-outline-danger.focus,.wpacu-btns .btn-outline-danger:focus{-webkit-box-shadow:0 0 0 2px rgba(217,83,79,.5);box-shadow:0 0 0 2px rgba(217,83,79,.5)}.wpacu-btns .btn-outline-danger.disabled,.wpacu-btns .btn-outline-danger:disabled{color:#d9534f;background-color:transparent}.wpacu-btns .btn-outline-danger.active,.wpacu-btns .btn-outline-danger:active,.wpacu-btns .show>.btn-outline-danger.dropdown-toggle{color:#fff;background-color:#d9534f;border-color:#d9534f}.wpacu-btns .btn-link{font-weight:400;color:#0275d8;border-radius:0}.wpacu-btns .btn-link,.wpacu-btns .btn-link.active,.wpacu-btns .btn-link:active,.wpacu-btns .btn-link:disabled{background-color:transparent}.wpacu-btns .btn-link,.wpacu-btns .btn-link:active,.wpacu-btns .btn-link:focus,.wpacu-btns .btn-link:hover{border-color:transparent}.wpacu-btns .btn-link:focus,.wpacu-btns .btn-link:hover{color:#014c8c;text-decoration:underline;background-color:transparent}.wpacu-btns .btn-link:disabled{color:#636c72}.wpacu-btns .btn-link:disabled:focus,.wpacu-btns .btn-link:disabled:hover{text-decoration:none}.wpacu-btns .btn-group-lg>.btn,.wpacu-btns .btn-lg{padding:.75rem 1.5rem;font-size:1.25rem;border-radius:.3rem}.wpacu-btns .btn-group-sm>.btn,.wpacu-btns .btn-sm{padding:.25rem .5rem;font-size:.875rem;border-radius:.2rem}.wpacu-btns .btn-block{display:block;width:100%}.go-pro-button,.go-pro-link-no-style,.wordpress-core-file{display:inline-block;text-decoration:none}.wpacu-btns .btn-block+.btn-block{margin-top:.5rem}.wpacu-btns input[type=submit].btn-block,.wpacu-btns input[type=reset].btn-block,.wpacu-btns input[type=button].btn-block{width:100%}.wpacu-btns .fade{opacity:0;-webkit-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.go-pro-button{background-color:#4CAF50;border:2px solid #4CAF50;color:#fff;padding:12px 18px;text-align:center;font-size:16px;margin:4px 2px;cursor:pointer;border-radius:10px;-webkit-transition-duration:.4s;transition-duration:.4s}.go-pro-button:hover{background-color:#fff;color:#000;border:2px solid #4CAF50}.go-pro-link-no-style .tooltip,.wordpress-core-file .tooltip{font-size:14px;line-height:18px;z-index:1;text-align:center;padding:6px;border-radius:6px;bottom:100%;left:50%}.go-pro-link-no-style{position:relative;color:inherit}.go-pro-link-no-style:not(.nav-tab){font-style:italic}.go-pro-link-no-style .tooltip{position:absolute;visibility:hidden;width:130px;background-color:#27ae60;color:#fff;margin-left:-65px}.go-pro-link-no-style .tooltip.wpacu-larger{width:240px}.go-pro-link-no-style:hover .tooltip{visibility:visible}.wordpress-core-file{position:relative;font-style:normal;color:inherit}.wordpress-core-file .tooltip{position:absolute;visibility:hidden;width:160px;background-color:#c00;color:#fff;margin-left:-80px}.wordpress-core-file:hover .tooltip{visibility:visible}body.wp-admin .go-pro-link-no-style .tooltip{font-size:12px;line-height:16px;padding:5px}.pro-page-unlock-notice{border-radius:10px;padding:10px;background:#f2faf2;border:1px solid #c0e8c0;width:auto;display:block}.wpacu-get-help-wrap .help-content-wrap{margin:20px 0 25px;display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-moz-flex;display:-webkit-flex;display:flex;width:100%}@media only screen and (min-width:768px){.wpacu-get-help-wrap .help-content-wrap{-webkit-box-align:start;-ms-flex-align:start;-ms-grid-row-align:flex-start;align-items:flex-start}}@media only screen and (max-width:767px){.wpacu-get-help-wrap .help-content-wrap{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}}.wpacu-get-help-wrap .help-content-wrap .help-content{padding:15px;background:#fff;border:1px solid #E0E0E0;-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px;box-shadow:2px 3px 8px 0 #231f2038;flex:1 1 50%;margin-bottom:10px}.wpacu-get-help-wrap .help-content-wrap .help-content .content-title{margin:5px 0 15px}.wpacu-get-help-wrap .help-content-wrap .help-content .wpacu-image-area{margin:5px 0 0;position:relative}.wpacu-get-help-wrap .help-content-wrap .help-content .wpacu-image-area img{width:99%;margin:8px 0;border:1px solid #cdcdcd;border-radius:10px}.wpacu-get-help-wrap .help-content-wrap .help-content.upgrade-help{order:2}@media only screen and (min-width:768px){.wpacu-get-help-wrap .help-content-wrap .help-content{margin-right:24px}.wpacu-get-help-wrap .help-content-wrap .help-content.upgrade-help{margin-right:0}}.wpacu-get-help-wrap .help-content-wrap .help-content.tech-help{order:1}@media only screen and (max-width:767px){.wpacu-get-help-wrap .help-content-wrap .help-content.tech-help{margin-bottom:30px}}.wpacu-get-help-wrap .help-content-wrap .help-content ul{list-style:none;padding-left:0}.wpacu-get-help-wrap .help-content-wrap .help-content ul li{font-size:14px;line-height:22px;margin-bottom:15px}.wpacu-get-help-wrap .help-content-wrap .help-content p:last-child,.wpacu-get-help-wrap .help-content-wrap .help-content ul li:last-child{margin-bottom:0}.ajax-direct-call-error-area{background:#fff;padding:10px;border:1px solid #c00;border-radius:8px}.ajax-direct-call-error-area td{padding:6px}.ajax-direct-call-error-area .note{margin-top:0;padding-top:0}.ajax-direct-call-error-area .error-code{color:#c00;font-weight:700}.ajax-wp-remote-post-call-error-area{background:#fff;padding:20px}.ajax-wp-remote-post-call-error-area .table-data{background:0 0;border:1px solid #c66;-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px}.ajax-wp-remote-post-call-error-area .table-data td{padding:10px}.toplevel_page_wpassetcleanup_settings .wpacu_switch{position:relative;display:inline-block;width:52px;height:29px}.toplevel_page_wpassetcleanup_settings .wpacu_switch.wpacu_locked_for_pro{opacity:.3}.toplevel_page_wpassetcleanup_settings .wpacu_switch input{display:none}.toplevel_page_wpassetcleanup_settings .wpacu_slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#ccc;-webkit-transition:.2s;transition:.2s}.toplevel_page_wpassetcleanup_settings .wpacu_slider:before{position:absolute;content:'';height:22px;width:22px;left:4px;bottom:4px;background-color:#fff;-webkit-transition:.2s;transition:.2s}.toplevel_page_wpassetcleanup_settings input:checked+.wpacu_slider{background-color:#52af00}.toplevel_page_wpassetcleanup_settings input:focus+.wpacu_slider{box-shadow:0 0 1px #52af00}.toplevel_page_wpassetcleanup_settings input:checked+.wpacu_slider:before{-webkit-transform:translateX(22px);-ms-transform:translateX(22px);transform:translateX(22px)}.toplevel_page_wpassetcleanup_settings .wpacu_slider.wpacu_round{border-radius:29px}.toplevel_page_wpassetcleanup_settings .wpacu_slider.wpacu_round:before{border-radius:50%}.wpacu_asset_row li.wpacu_unload_this_page{display:block!important;position:relative}.wpacu_asset_row .wpacu_switch{position:relative;display:inline-block;width:52px;height:29px;margin-right:5px!important}.wpacu_asset_row .wpacu_switch input{display:none}.wpacu_asset_row .wpacu_slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#ccc;-webkit-transition:.2s;transition:.2s}.wpacu_asset_row .wpacu_slider:before{position:absolute;content:'';height:22px;width:22px;left:4px;bottom:4px;background-color:#fff;-webkit-transition:.2s;transition:.2s}.wpacu_asset_row .wpacu_slider_text{position:absolute;left:62px;top:3px}.wpacu_asset_row input:checked+.wpacu_slider{background-color:#C00}.wpacu_asset_row input:focus+.wpacu_slider{box-shadow:0 0 1px #C00}.wpacu_asset_row input:checked+.wpacu_slider:before{-webkit-transform:translateX(22px);-ms-transform:translateX(22px);transform:translateX(22px)}.wpacu_asset_row .wpacu_slider.wpacu_round{border-radius:29px}.wpacu_asset_row .wpacu_slider.wpacu_round:before{border-radius:50%}.wpacu_table_wrap{margin:20px 0 0}.wpacu_table_wrap>table{border:1px solid #cdcdcd}.wpacu_table_wrap .table{width:100%;max-width:100%;margin-bottom:1rem;-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px}.wpacu_table_wrap .table td,.wpacu_table_wrap .table th{padding:.75rem;vertical-align:top;border-top:1px solid #eceeef}.wpacu_table_wrap .table thead th{vertical-align:bottom;border-bottom:2px solid #eceeef}.wpacu_table_wrap .table tbody+tbody{border-top:2px solid #eceeef}.wpacu_table_wrap .table .table{background-color:#fff}.wpacu_table_wrap .table-sm td,.wpacu_table_wrap .table-sm th{padding:.3rem}.wpacu_table_wrap .table-bordered,.wpacu_table_wrap .table-bordered td,.wpacu_table_wrap .table-bordered th{border:1px solid #eceeef}.wpacu_table_wrap .table-bordered thead td,.wpacu_table_wrap .table-bordered thead th{border-bottom-width:2px}.wpacu_table_wrap .table-striped tbody tr:nth-of-type(even){background-color:#f9f9f9}.wpacu_table_wrap .table-striped tbody tr:nth-of-type(odd){background-color:#fff}.wpacu_table_wrap .table-active,.wpacu_table_wrap .table-active>td,.wpacu_table_wrap .table-active>th,.wpacu_table_wrap .table-hover .table-active:hover,.wpacu_table_wrap .table-hover .table-active:hover>td,.wpacu_table_wrap .table-hover .table-active:hover>th,.wpacu_table_wrap .table-hover tbody tr:hover{background-color:rgba(0,0,0,.075)}.wpacu_table_wrap .table-success,.wpacu_table_wrap .table-success>td,.wpacu_table_wrap .table-success>th{background-color:#dff0d8}.wpacu_table_wrap .table-hover .table-success:hover,.wpacu_table_wrap .table-hover .table-success:hover>td,.wpacu_table_wrap .table-hover .table-success:hover>th{background-color:#d0e9c6}.wpacu_table_wrap .table-info,.wpacu_table_wrap .table-info>td,.wpacu_table_wrap .table-info>th{background-color:#d9edf7}.wpacu_table_wrap .table-hover .table-info:hover,.wpacu_table_wrap .table-hover .table-info:hover>td,.wpacu_table_wrap .table-hover .table-info:hover>th{background-color:#c4e3f3}.wpacu_table_wrap .table-warning,.wpacu_table_wrap .table-warning>td,.wpacu_table_wrap .table-warning>th{background-color:#fcf8e3}.wpacu_table_wrap .table-hover .table-warning:hover,.wpacu_table_wrap .table-hover .table-warning:hover>td,.wpacu_table_wrap .table-hover .table-warning:hover>th{background-color:#faf2cc}.wpacu_table_wrap .table-danger,.wpacu_table_wrap .table-danger>td,.wpacu_table_wrap .table-danger>th{background-color:#f2dede}.wpacu_table_wrap .table-hover .table-danger:hover,.wpacu_table_wrap .table-hover .table-danger:hover>td,.wpacu_table_wrap .table-hover .table-danger:hover>th{background-color:#ebcccc}.wpacu_table_wrap .thead-inverse th{color:#fff;background-color:#292b2c}.wpacu_table_wrap .thead-default th{color:#464a4c;background-color:#eceeef}.wpacu_table_wrap .table-inverse{color:#fff;background-color:#292b2c}.wpacu_table_wrap .table-inverse td,.wpacu_table_wrap .table-inverse th,.wpacu_table_wrap .table-inverse thead th{border-color:#fff}.wpacu_table_wrap .table-inverse.table-bordered,.wpacu_table_wrap .table-responsive.table-bordered{border:0}.wpacu_table_wrap .table-responsive{display:block;width:100%;overflow-x:auto;-ms-overflow-style:-ms-autohiding-scrollbar}
1
+ .go-pro-button,.wpacu-btns .btn,.wpacu-tabs nav,.wpacu-tabs nav ul li{text-align:center}#wpacu_meta_box_content .dashicons.dashicons-warning,.wpacu-tabs nav ul li span.license-status.inactive{color:#c00}#wpacu-pages-info-area{width:98%}#wpacu-logo-area{margin:15px 0;padding:0 10px}#wpacu-logo-area img{width:352px;height:79px}.wpacu-tabs{position:relative;overflow:hidden;margin:0 auto 20px;width:100%;font-weight:300;font-size:20px}.wpacu-tabs nav ul{position:relative;display:-ms-flexbox;display:-webkit-flex;display:-moz-flex;display:-ms-flex;display:flex;margin:0 auto;padding:0;max-width:1200px;list-style:none;-ms-box-orient:horizontal;-ms-box-pack:center;-webkit-flex-flow:row wrap;-moz-flex-flow:row wrap;-ms-flex-flow:row wrap;flex-flow:row wrap;-webkit-justify-content:center;-moz-justify-content:center;-ms-justify-content:center;justify-content:center}.wpacu-tabs nav ul li{position:relative;z-index:1;display:block;margin:0;-webkit-flex:1;-moz-flex:1;-ms-flex:1;flex:1}.wpacu-tabs nav ul li span.license-status{position:absolute;font-size:12px;left:0;right:50%;bottom:12px;-webkit-transform:translate(50%,50%);transform:translate(50%,50%)}.wpacu-tabs nav ul li span.license-status.active{color:green}.wpacu-tabs nav a{position:relative;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:2.5}.wpacu-tabs nav a span{vertical-align:middle;font-size:14px}.wpacu-tabs nav li.wpacu-tab-current a{color:#74777b}.wpacu-tabs nav a:focus{outline:0}.wpacu-tabs .dashicons{font-size:20px}.no-js .wpacu-content-wrap section{display:block;padding-bottom:2em;border-bottom:1px solid rgba(255,255,255,.6)}.no-flexbox nav ul{display:block}.no-flexbox nav ul li{min-width:15%;display:inline-block}@media screen and (max-width:58em){.wpacu-tabs nav a.icon span{display:none}.wpacu-tabs nav a:before{margin-right:0}}.wpacu-tabs-style-underline nav{background:#fff}.wpacu-tabs-style-underline nav a{color:#74777b;font-size:18px;text-transform:uppercase;text-decoration:none;padding:.25em 0 .5em;border-left:1px solid #e7ecea;-webkit-transition:color .2s;transition:color .2s}.wpacu-tabs-style-underline nav li:last-child a{border-right:1px solid #e7ecea}.wpacu-tabs-style-underline nav li a::after{position:absolute;bottom:0;left:0;width:100%;height:6px;background:#2CC185;content:'';-webkit-transition:-webkit-transform .3s;transition:transform .3s;-webkit-transform:translate3d(0,150%,0);transform:translate3d(0,150%,0)}.wpacu-tabs-style-underline nav li.wpacu-tab-current a::after{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.wpacu-tabs-style-underline nav a span{font-weight:700}.wpacu-tabs-style-topline{max-width:1200px;margin:20px auto 30px 0;width:100%;font-weight:300;text-decoration:none}.wpacu-tabs-style-topline nav li{border:1px solid rgba(40,44,42,.1)}.wpacu-tabs-style-topline nav li:not(:last-child){border-right:none}.wpacu-tabs-style-topline nav li.wpacu-tab-current{border-top-color:#008f9c;border-bottom:none}.wpacu-tabs-style-topline nav a{padding:20px 18px;background:rgba(40,44,42,.05);color:#74777b;line-height:1;-webkit-transition:color .2s;transition:color .2s;text-decoration:none}.wpacu-tabs-style-topline nav a:focus,.wpacu-tabs-style-topline nav a:hover{background:0 0;color:#008f9c}.wpacu-tabs-style-topline nav li.wpacu-tab-current a{background:0 0;box-shadow:inset 0 3px 0 #008f9c;color:#008f9c}.wpacu-tabs-style-topline nav li.wpacu-tab-current a span:not(.dashicons){font-weight:600}.wpacu-tabs-style-topline nav a span{text-transform:uppercase;font-weight:400}.wpacu-tab-nav-wrapper{border-bottom:none!important}.wpacu-tab-nav-wrapper .nav-tab.nav-tab-active{background:#fff;position:relative}.wpacu-tab-nav-wrapper .nav-tab.nav-tab-active:after{content:'';width:100%;bottom:-2px;left:0;position:absolute;border-bottom:2px solid #fff}.wpacu-script-attributes-area{margin:20px 0 0!important}.wpacu-script-attributes-area.wpacu-lite ul.wpacu-script-attributes-settings{padding:5px 7px!important}.wpacu-script-attributes-area.wpacu-lite ul.wpacu-script-attributes-settings.wpacu-first{margin:0 28px 0 0!important}.wpacu-script-attributes-area.wpacu-lite ul.wpacu-script-attributes-settings label{margin:0!important}.wpacu-script-attributes-area.wpacu-lite ul.wpacu-script-attributes-settings li{margin:0 16px 0 0!important}.wpacu-script-attributes-area.wpacu-lite ul.wpacu-script-attributes-settings li:first-child{margin:0 10px 0 0!important}.wpacu-script-attributes-area.wpacu-lite ul.wpacu-script-attributes-settings li:last-child{margin:0 2px 0 0!important}.wpacu-script-attributes-area .wpacu-script-attributes-settings{background:#fff!important;border:1px solid #eee!important;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;padding:5px 10px!important;list-style:none;display:inline-block;margin:0}.wpacu-script-attributes-area .wpacu-script-attributes-settings input[type=radio]{padding:0;margin:0 5px 0 0}.wpacu-script-attributes-area .wpacu-script-attributes-settings.wpacu-first{margin:0 34px 0 0!important}.wpacu-script-attributes-area .wpacu-script-attributes-settings li{float:left;margin:0 17px 0 0}.wpacu-script-attributes-area .wpacu-script-attributes-settings li:first-child{margin:0 10px 0 0!important}.wpacu-script-attributes-area .wpacu-script-attributes-settings li:last-child{margin:0}.wpacu-script-attributes-area .wpacu-script-attributes-settings:hover{background:#f2faf2}tr.wpacu_not_load td,tr.wpacu_not_load th{background:#FFE1E1!important}.dashicons-wpacu{width:17px;height:17px;margin:2px 0 0;font-size:16px;text-decoration:none}.wpacu_widefat .check-column.wpacu_check{padding:10px}body[class*=wpassetcleanup] #footer-left{border-left:2px solid green;padding-left:10px}#wpassetcleanup_asset_list small{width:auto;float:none;display:inline}#wpacu_meta_box_content{width:99%}#wpacu_meta_box_content .emoji{font-size:18px}#wpacu_meta_box_content h3{margin-left:0;padding-left:0}#wpacu_meta_box_content div.wpacu_note{padding:10px;background-color:#f5f5f5}#wpacu_meta_box_content .wpacu_verified{padding:10px;background-color:#f5f5f5;border-left:1px solid #ddd}#wpacu_meta_box_content .wpacu_verified span{color:#0073aa;font-weight:700}#wpacu_meta_box_content div.wpacu_warning{border:1px solid #c00}#wpacu_meta_box_content ul.wpacu_asset_options{margin:0;padding:0}#wpacu_meta_box_content ul.wpacu_asset_options li{list-style:none;display:inline-block}#wpacu_meta_box_content ul.wpacu_asset_options label{font-weight:400;margin-right:5px;margin-top:5px;margin-bottom:5px}.wpacu-updated-frontend{font-weight:400;background-color:#fff;border-left:4px solid #46b450;border-top:1px solid #46b450;border-right:1px solid #46b450;border-bottom:1px solid #46b450;padding:9px 14px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.wpacu-updated-frontend span.dashicons-yes{color:#46b450;font-size:26px}#wpacu_wrap_assets{color:#000!important;text-align:left!important;clear:both!important;width:90%!important;padding:20px!important;margin:30px 0 0 15px!important;border:1px solid #cdcdcd;z-index:10000!important;position:relative!important;background-color:#fff!important}#wpacu_wrap_assets div.wpacu_warning{border:1px solid #c00;padding:5px 10px}#wpacu_wrap_assets small{display:inline!important;margin:0!important;letter-spacing:normal!important}#wpacu_wrap_assets img,.wpacu_asset_row td label{display:inline-block!important}#wpacu_wrap_assets input[type=checkbox]{margin-right:4px!important}#wpacu_wrap_assets p{line-height:22px!important;margin:10px 0!important;text-align:left!important;font-weight:400!important}#wpacu_wrap_assets p:first-child,.wpacu_verified{margin:0 0 10px!important}#wpacu_wrap_assets h1{margin:0 0 20px!important;font-size:160%!important;text-align:left!important}#wpacu_wrap_assets h3{margin:20px 0;font-size:130%}.wpacu_asset_row td{padding:18px!important;position:relative;border-left:1px solid #cdcdcd;border-right:1px solid #cdcdcd;border-bottom:1px solid #cdcdcd}.wpacu_asset_row td.selected,.wpacu_asset_row td:hover{border:1px solid #cdcdcd;-moz-box-shadow:inset 0 0 12px #cdcdcd;-webkit-box-shadow:inset 0 0 12px #cdcdcd;box-shadow:inset 0 0 12px #cdcdcd}.wpacu_asset_row td:first-child{border-top:1px solid #cdcdcd}.wpacu_asset_row td p{padding:0!important;margin-bottom:10px!important;word-wrap:break-word!important;-ms-word-break:break-all;word-break:break-word}.wpacu_asset_row td label{margin:0!important;cursor:pointer!important;font-size:100%!important;font-weight:400!important}.wpacu_asset_row td label span:not(.dashicons){font-size:100%!important}.wpacu_asset_row td.wpacu_check{width:50px!important}.asset-table-extra-info td{padding:5px!important}body.wp-admin .wpacu_asset_row td.wpacu_check{width:25px!important}.wpacu_asset_row .dashicons-warning{color:red!important}label.wpacu_add_global{cursor:pointer!important}label.wpacu_global_checked{font-weight:700;color:#d54e21}label.wpacu_global_unload_exception{font-weight:700!important}label.wpacu_bulk_unload_active{color:#d54e21}tr.wpacu_global_rule_row.selected{background:#e7e7e7}.nav-tab-wrapper{border-bottom:1px solid #ccc;width:95%}ul.wpacu_asset_options{margin:0 10px 0 0;padding:0}ul.wpacu_asset_options li{margin:0 20px 0 0;list-style:none;display:inline-block;line-height:normal}ul.wpacu_asset_options li.remove_rule label{font-weight:700}ul.wpacu_asset_options label{margin-right:20px;font-weight:400}ul.wpacu_asset_options label input{margin-right:4px}.wpacu_list_table,.wpacu_list_table div,.wpacu_list_table li,.wpacu_list_table p{font-weight:400}.wpacu_widefat{width:99%}.wpacu_striped>tbody>:nth-child(even),ul.wpacu_striped>:nth-child(even){background-color:#fff!important}.wpacu_striped>tbody>:nth-child(odd),ul.wpacu_striped>:nth-child(odd){background-color:#f9f9f9!important}.wpacu_update_btn{-moz-box-shadow:inset 0 1px 0 0 #54a3f7!important;-webkit-box-shadow:inset 0 1px 0 0 #54a3f7!important;box-shadow:inset 0 1px 0 0 #54a3f7!important;background:-webkit-gradient(linear,left top,left bottom,color-stop(.05,#007dc1),color-stop(1,#0061a7))!important;background:-moz-linear-gradient(top,#007dc1 5%,#0061a7 100%)!important;background:-webkit-linear-gradient(top,#007dc1 5%,#0061a7 100%)!important;background:-o-linear-gradient(top,#007dc1 5%,#0061a7 100%)!important;background:-ms-linear-gradient(top,#007dc1 5%,#0061a7 100%)!important;background:linear-gradient(to bottom,#007dc1 5%,#0061a7 100%)!important;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#007dc1', endColorstr='#0061a7', GradientType=0)!important;background-color:#007dc1!important;-moz-border-radius:3px!important;-webkit-border-radius:3px!important;border-radius:3px!important;border:1px solid #124d77!important;display:inline-block!important;cursor:pointer!important;color:#fff!important;font-size:15px!important;padding:10px 24px!important;text-decoration:none!important;text-shadow:0 1px 0 #154682!important;height:auto!important;line-height:normal!important}.wpacu-btns .btn:focus,.wpacu-btns .btn:hover,.wpacu-btns a{text-decoration:none}.wpacu_update_btn:hover{background:-webkit-gradient(linear,left top,left bottom,color-stop(.05,#0061a7),color-stop(1,#007dc1))!important;background:-moz-linear-gradient(top,#0061a7 5%,#007dc1 100%)!important;background:-webkit-linear-gradient(top,#0061a7 5%,#007dc1 100%)!important;background:-o-linear-gradient(top,#0061a7 5%,#007dc1 100%)!important;background:-ms-linear-gradient(top,#0061a7 5%,#007dc1 100%)!important;background:linear-gradient(to bottom,#0061a7 5%,#007dc1 100%)!important;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#0061a7', endColorstr='#007dc1', GradientType=0)!important;background-color:#0061a7!important}.wpacu_update_btn:active{position:relative!important;top:1px!important}.wpacu-btns .btn{display:inline-block;font-weight:400;line-height:1.25;white-space:nowrap;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border:1px solid transparent;padding:.5rem 1rem;font-size:1rem;-webkit-border-radius:.25rem;-moz-border-radius:.25rem;border-radius:.25rem;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.wpacu-btns .btn.focus,.wpacu-btns .btn:focus{outline:0;-webkit-box-shadow:0 0 0 2px rgba(2,117,216,.25);box-shadow:0 0 0 2px rgba(2,117,216,.25)}.wpacu-btns .btn.disabled,.wpacu-btns .btn:disabled{cursor:not-allowed;opacity:.65}.wpacu-btns .btn.active,.wpacu-btns .btn:active{background-image:none}.wpacu-btns a.btn.disabled,.wpacu-btns fieldset[disabled] a.btn{pointer-events:none}.wpacu-btns .btn-primary{color:#fff;background-color:#0275d8;border-color:#0275d8}.wpacu-btns .btn-primary:hover{color:#fff;background-color:#025aa5;border-color:#01549b}.wpacu-btns .btn-primary.focus,.wpacu-btns .btn-primary:focus{-webkit-box-shadow:0 0 0 2px rgba(2,117,216,.5);box-shadow:0 0 0 2px rgba(2,117,216,.5)}.wpacu-btns .btn-primary.disabled,.wpacu-btns .btn-primary:disabled{background-color:#0275d8;border-color:#0275d8}.wpacu-btns .btn-primary.active,.wpacu-btns .btn-primary:active,.wpacu-btns .show>.btn-primary.dropdown-toggle{color:#fff;background-color:#025aa5;background-image:none;border-color:#01549b}.wpacu-btns .btn-secondary{color:#292b2c;background-color:#fff;border-color:#ccc}.wpacu-btns .btn-secondary:hover{color:#292b2c;background-color:#e6e6e6;border-color:#adadad}.wpacu-btns .btn-secondary.focus,.wpacu-btns .btn-secondary:focus{-webkit-box-shadow:0 0 0 2px rgba(204,204,204,.5);box-shadow:0 0 0 2px rgba(204,204,204,.5)}.wpacu-btns .btn-secondary.disabled,.wpacu-btns .btn-secondary:disabled{background-color:#fff;border-color:#ccc}.wpacu-btns .btn-secondary.active,.wpacu-btns .btn-secondary:active,.wpacu-btns .show>.btn-secondary.dropdown-toggle{color:#292b2c;background-color:#e6e6e6;background-image:none;border-color:#adadad}.wpacu-btns .btn-info{color:#fff;background-color:#5bc0de;border-color:#5bc0de}.wpacu-btns .btn-info:hover{color:#fff;background-color:#31b0d5;border-color:#2aabd2}.wpacu-btns .btn-info.focus,.wpacu-btns .btn-info:focus{-webkit-box-shadow:0 0 0 2px rgba(91,192,222,.5);box-shadow:0 0 0 2px rgba(91,192,222,.5)}.wpacu-btns .btn-info.disabled,.wpacu-btns .btn-info:disabled{background-color:#5bc0de;border-color:#5bc0de}.wpacu-btns .btn-info.active,.wpacu-btns .btn-info:active,.wpacu-btns .show>.btn-info.dropdown-toggle{color:#fff;background-color:#31b0d5;background-image:none;border-color:#2aabd2}.wpacu-btns .btn-success{color:#fff;background-color:#5cb85c;border-color:#5cb85c}.wpacu-btns .btn-success:hover{color:#fff;background-color:#449d44;border-color:#419641}.wpacu-btns .btn-success.focus,.wpacu-btns .btn-success:focus{-webkit-box-shadow:0 0 0 2px rgba(92,184,92,.5);box-shadow:0 0 0 2px rgba(92,184,92,.5)}.wpacu-btns .btn-success.disabled,.wpacu-btns .btn-success:disabled{background-color:#5cb85c;border-color:#5cb85c}.wpacu-btns .btn-success.active,.wpacu-btns .btn-success:active,.wpacu-btns .show>.btn-success.dropdown-toggle{color:#fff;background-color:#449d44;background-image:none;border-color:#419641}.wpacu-btns .btn-warning{color:#fff;background-color:#f0ad4e;border-color:#f0ad4e}.wpacu-btns .btn-warning:hover{color:#fff;background-color:#ec971f;border-color:#eb9316}.wpacu-btns .btn-warning.focus,.wpacu-btns .btn-warning:focus{-webkit-box-shadow:0 0 0 2px rgba(240,173,78,.5);box-shadow:0 0 0 2px rgba(240,173,78,.5)}.wpacu-btns .btn-warning.disabled,.wpacu-btns .btn-warning:disabled{background-color:#f0ad4e;border-color:#f0ad4e}.wpacu-btns .btn-warning.active,.wpacu-btns .btn-warning:active,.wpacu-btns .show>.btn-warning.dropdown-toggle{color:#fff;background-color:#ec971f;background-image:none;border-color:#eb9316}.wpacu-btns .btn-danger{color:#fff;background-color:#d9534f;border-color:#d9534f}.wpacu-btns .btn-danger:hover{color:#fff;background-color:#c9302c;border-color:#c12e2a}.wpacu-btns .btn-danger.focus,.wpacu-btns .btn-danger:focus{-webkit-box-shadow:0 0 0 2px rgba(217,83,79,.5);box-shadow:0 0 0 2px rgba(217,83,79,.5)}.wpacu-btns .btn-danger.disabled,.wpacu-btns .btn-danger:disabled{background-color:#d9534f;border-color:#d9534f}.wpacu-btns .btn-danger.active,.wpacu-btns .btn-danger:active,.wpacu-btns .show>.btn-danger.dropdown-toggle{color:#fff;background-color:#c9302c;background-image:none;border-color:#c12e2a}.wpacu-btns .btn-outline-primary{color:#0275d8;background-image:none;background-color:transparent;border-color:#0275d8}.wpacu-btns .btn-outline-primary:hover{color:#fff;background-color:#0275d8;border-color:#0275d8}.wpacu-btns .btn-outline-primary.focus,.wpacu-btns .btn-outline-primary:focus{-webkit-box-shadow:0 0 0 2px rgba(2,117,216,.5);box-shadow:0 0 0 2px rgba(2,117,216,.5)}.wpacu-btns .btn-outline-primary.disabled,.wpacu-btns .btn-outline-primary:disabled{color:#0275d8;background-color:transparent}.wpacu-btns .btn-outline-primary.active,.wpacu-btns .btn-outline-primary:active,.wpacu-btns .show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#0275d8;border-color:#0275d8}.wpacu-btns .btn-outline-secondary{color:#ccc;background-image:none;background-color:transparent;border-color:#ccc}.wpacu-btns .btn-outline-secondary:hover{color:#fff;background-color:#ccc;border-color:#ccc}.wpacu-btns .btn-outline-secondary.focus,.wpacu-btns .btn-outline-secondary:focus{-webkit-box-shadow:0 0 0 2px rgba(204,204,204,.5);box-shadow:0 0 0 2px rgba(204,204,204,.5)}.wpacu-btns .btn-outline-secondary.disabled,.wpacu-btns .btn-outline-secondary:disabled{color:#ccc;background-color:transparent}.wpacu-btns .btn-outline-secondary.active,.wpacu-btns .btn-outline-secondary:active,.wpacu-btns .show>.btn-outline-secondary.dropdown-toggle{color:#fff;background-color:#ccc;border-color:#ccc}.wpacu-btns .btn-outline-info{color:#5bc0de;background-image:none;background-color:transparent;border-color:#5bc0de}.wpacu-btns .btn-outline-info:hover{color:#fff;background-color:#5bc0de;border-color:#5bc0de}.wpacu-btns .btn-outline-info.focus,.wpacu-btns .btn-outline-info:focus{-webkit-box-shadow:0 0 0 2px rgba(91,192,222,.5);box-shadow:0 0 0 2px rgba(91,192,222,.5)}.wpacu-btns .btn-outline-info.disabled,.wpacu-btns .btn-outline-info:disabled{color:#5bc0de;background-color:transparent}.wpacu-btns .btn-outline-info.active,.wpacu-btns .btn-outline-info:active,.wpacu-btns .show>.btn-outline-info.dropdown-toggle{color:#fff;background-color:#5bc0de;border-color:#5bc0de}.wpacu-btns .btn-outline-success{color:#5cb85c;background-image:none;background-color:transparent;border-color:#5cb85c}.wpacu-btns .btn-outline-success:hover{color:#fff;background-color:#5cb85c;border-color:#5cb85c}.wpacu-btns .btn-outline-success.focus,.wpacu-btns .btn-outline-success:focus{-webkit-box-shadow:0 0 0 2px rgba(92,184,92,.5);box-shadow:0 0 0 2px rgba(92,184,92,.5)}.wpacu-btns .btn-outline-success.disabled,.wpacu-btns .btn-outline-success:disabled{color:#5cb85c;background-color:transparent}.wpacu-btns .btn-outline-success.active,.wpacu-btns .btn-outline-success:active,.wpacu-btns .show>.btn-outline-success.dropdown-toggle{color:#fff;background-color:#5cb85c;border-color:#5cb85c}.wpacu-btns .btn-outline-warning{color:#f0ad4e;background-image:none;background-color:transparent;border-color:#f0ad4e}.wpacu-btns .btn-outline-warning:hover{color:#fff;background-color:#f0ad4e;border-color:#f0ad4e}.wpacu-btns .btn-outline-warning.focus,.wpacu-btns .btn-outline-warning:focus{-webkit-box-shadow:0 0 0 2px rgba(240,173,78,.5);box-shadow:0 0 0 2px rgba(240,173,78,.5)}.wpacu-btns .btn-outline-warning.disabled,.wpacu-btns .btn-outline-warning:disabled{color:#f0ad4e;background-color:transparent}.wpacu-btns .btn-outline-warning.active,.wpacu-btns .btn-outline-warning:active,.wpacu-btns .show>.btn-outline-warning.dropdown-toggle{color:#fff;background-color:#f0ad4e;border-color:#f0ad4e}.wpacu-btns .btn-outline-danger{color:#d9534f;background-image:none;background-color:transparent;border-color:#d9534f}.wpacu-btns .btn-outline-danger:hover{color:#fff;background-color:#d9534f;border-color:#d9534f}.wpacu-btns .btn-outline-danger.focus,.wpacu-btns .btn-outline-danger:focus{-webkit-box-shadow:0 0 0 2px rgba(217,83,79,.5);box-shadow:0 0 0 2px rgba(217,83,79,.5)}.wpacu-btns .btn-outline-danger.disabled,.wpacu-btns .btn-outline-danger:disabled{color:#d9534f;background-color:transparent}.wpacu-btns .btn-outline-danger.active,.wpacu-btns .btn-outline-danger:active,.wpacu-btns .show>.btn-outline-danger.dropdown-toggle{color:#fff;background-color:#d9534f;border-color:#d9534f}.wpacu-btns .btn-link{font-weight:400;color:#0275d8;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.wpacu-btns .btn-link,.wpacu-btns .btn-link.active,.wpacu-btns .btn-link:active,.wpacu-btns .btn-link:disabled{background-color:transparent}.wpacu-btns .btn-link,.wpacu-btns .btn-link:active,.wpacu-btns .btn-link:focus,.wpacu-btns .btn-link:hover{border-color:transparent}.wpacu-btns .btn-link:focus,.wpacu-btns .btn-link:hover{color:#014c8c;text-decoration:underline;background-color:transparent}.go-pro-button,.wpacu-btns .btn-link:disabled:focus,.wpacu-btns .btn-link:disabled:hover{text-decoration:none}.wpacu-btns .btn-link:disabled{color:#636c72}.wpacu-btns .btn-group-lg>.btn,.wpacu-btns .btn-lg{padding:.75rem 1.5rem;font-size:1.25rem;-webkit-border-radius:.3rem;-moz-border-radius:.3rem;border-radius:.3rem}.wpacu-btns .btn-group-sm>.btn,.wpacu-btns .btn-sm{padding:.25rem .5rem;font-size:.875rem;-webkit-border-radius:.2rem;-moz-border-radius:.2rem;border-radius:.2rem}.wpacu-btns .btn-block{display:block;width:100%}.wpacu-btns .btn-block+.btn-block{margin-top:.5rem}.wpacu-btns input[type=submit].btn-block,.wpacu-btns input[type=reset].btn-block,.wpacu-btns input[type=button].btn-block{width:100%}.wpacu-btns .fade{opacity:0;-webkit-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.go-pro-button{background-color:#4CAF50;border:2px solid #4CAF50;color:#fff;padding:12px 18px;display:inline-block;font-size:16px;margin:4px 2px;cursor:pointer;-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px;-webkit-transition-duration:.4s;transition-duration:.4s}.go-pro-button:hover{background-color:#fff;color:#000;border:2px solid #4CAF50;text-decoration:none}.go-pro-link-no-style,.wordpress-core-file{display:inline-block;color:inherit;text-decoration:none}.wpacu-restore-pos-btn{font-size:14px!important;line-height:normal!important;height:42px!important;padding:0 18px!important;margin-top:10px!important}body.wp-admin .wpacu_asset_row .go-pro-link-no-style .wpacu-tooltip{padding:8px 2px}body.wp-admin .go-pro-link-no-style .wpacu-tooltip{text-shadow:none;font-weight:400;font-size:12px;line-height:16px;padding:8px 11px}.go-pro-link-no-style .wpacu-tooltip,.wordpress-core-file .wpacu-tooltip{font-size:14px;line-height:18px;visibility:hidden;text-align:center;z-index:1}.go-pro-link-no-style{position:relative}.go-pro-link-no-style:not(.nav-tab){font-style:italic}.go-pro-link-no-style.no-transition .wpacu-tooltip{-webkit-transition:0s all ease;transition:0s all ease;-webkit-transition-delay:0s;transition-delay:0s}.go-pro-link-no-style .wpacu-tooltip{position:absolute;width:160px;background-color:#00a7a7;color:#fff;padding:8px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;bottom:100%;bottom:calc(100% + 15px);left:50%;margin-left:-65px;-webkit-transition:.1s all ease;transition:.1s all ease;-webkit-transition-delay:0s;transition-delay:0s}.go-pro-link-no-style .wpacu-tooltip:after{content:"";position:absolute;border-width:10px;border-style:solid;top:100%;left:50%;left:calc(50% - 10px);border-color:#00a7a7 transparent transparent}.go-pro-link-no-style .wpacu-tooltip.wpacu-on-pages-btn{cursor:pointer;margin-left:-77px;width:130px}.go-pro-link-no-style .wpacu-tooltip.wpacu-larger{width:240px}.go-pro-link-no-style:hover .wpacu-tooltip{visibility:visible}.wpacu_list_table tr:first-child .wordpress-core-file .wpacu-tooltip{bottom:-40px;left:120px;margin-left:-86px}.wpacu_list_table tr:first-child .wordpress-core-file .wpacu-tooltip:after{top:41px;left:-20px;border-color:transparent #c00 transparent transparent}.wordpress-core-file{position:relative;font-style:normal}.wordpress-core-file .wpacu-tooltip{position:absolute;width:160px;background-color:#c00;color:#fff;padding:6px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;bottom:100%;bottom:calc(100% + 15px);left:50%;margin-left:-86px;-webkit-transition:.1s all ease;transition:.1s all ease;-webkit-transition-delay:0s;transition-delay:0s}.wordpress-core-file .wpacu-tooltip:after{content:"";position:absolute;border-width:10px;border-style:solid;top:100%;left:50%;left:calc(50% - 10px);border-color:#c00 transparent transparent}.wordpress-core-file:hover .wpacu-tooltip{visibility:visible}.ajax-direct-call-error-area{background:#fff;padding:10px;border:1px solid #c00;-webkit-border-radius:8px;-moz-border-radius:8px;border-radius:8px}.ajax-direct-call-error-area td{padding:6px}.ajax-direct-call-error-area .note{margin-top:0;padding-top:0}.ajax-direct-call-error-area .error-code{color:#c00;font-weight:700}.ajax-wp-remote-post-call-error-area{background:#fff;padding:20px}.ajax-wp-remote-post-call-error-area .table-data{background:0 0;border:1px solid #c66;-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px}.ajax-wp-remote-post-call-error-area .table-data td{padding:10px}.wrap-upgrade-info{background:#fff;padding:0 15px;border:1px solid #cdcdcd;-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px}.wpacu-notice{margin:20px 20px 0 0!important}.wpacu-notice p{font-weight:600!important;font-style:italic}.wpacu-notice .dashicons{font-weight:inherit!important;color:#46b450!important;margin-right:4px;vertical-align:text-bottom;font-size:27px}.wpacu-notice-info{padding:12px 12px 12px 16px;background:#fff;border-left:4px solid #008f9c}.wpacu-notice-info p{margin-top:8px}.wpacu-notice-info p:first-child{margin-top:0}.wpacu-notice-info p:last-child{margin-bottom:0}.wpacu-warning{font-size:15px;padding:10px;background:#fffcec;border:1px solid #fdd5c9;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;margin:0 0 5px;width:100%}.pro-page-unlock-notice{-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px;padding:10px;background:#f2faf2;border:1px solid #c0e8c0;width:auto;display:block}.wpacu-license-area .notice,.wpacu-settings-area .notice{margin-left:0;padding:10px!important;width:97%;box-sizing:border-box;font-weight:600;font-style:italic}.wpacu-license-area .notice .dashicons,.wpacu-settings-area .notice .dashicons{color:green}#wpacu-dom-get-type-selections,.wpacu-radio-selections{float:none;clear:both;width:auto;display:inline-block;margin-bottom:0;margin-top:0}#wpacu-dom-get-type-selections.wpacu-vertical,.wpacu-radio-selections.wpacu-vertical{display:block;margin-top:15px;margin-bottom:18px}#wpacu-dom-get-type-selections.wpacu-vertical li,.wpacu-radio-selections.wpacu-vertical li{float:none;margin-bottom:12px}#wpacu-dom-get-type-selections.wpacu-vertical li:last-child,.wpacu-radio-selections.wpacu-vertical li:last-child{margin-bottom:0}#wpacu-dom-get-type-selections li,.wpacu-radio-selections li{margin-right:30px;float:left;margin-bottom:0}#wpacu-dom-get-type-selections li:first-child,.wpacu-radio-selections li:first-child{margin-right:15px}#wpacu-dom-get-type-selections li:last-child,.wpacu-radio-selections li:last-child{margin-right:0}.wpacu_combine_loaded_js_level_area{display:none;background:0 0;border-left:2px solid #008f9c;padding-top:8px;padding-bottom:8px;padding-right:10px;padding-left:10px;margin:20px 0 15px}.wpacu_combine_loaded_js_level_area.wpacu_active{display:block}#wpacu-dom-get-type-infos{margin-bottom:0}#wpacu-dom-get-type-infos li{margin-bottom:0;line-height:20px}.wpacu-wrap small{width:auto;float:none;display:inline}.wpacu-wrap.wpacu-settings-show-all .wpacu-settings-tab-content{display:block;width:100%}.wpacu-wrap.wpacu-settings-show-all .wpacu-settings-area-title{color:#004567;padding:16px 15px;background:#f8f8f8;border-left:5px solid #004567b0;border-top:1px solid #e7e7e7;border-right:1px solid #e7e7e7;border-bottom:1px solid #e7e7e7;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;font-size:1.45em;font-weight:500}.wpacu-switch-enhanced .wpacu_asset_row .wpacu_switch .wpacu_slider.wpacu_round,.wpacu-wrap.wpacu-switch-enhanced .wpacu_switch .wpacu_slider.wpacu_round{border-radius:29px}.wpacu-wrap.wpacu-settings-show-all #wpacu-update-button-area{margin:0}.wpacu-wrap.wpacu-settings-show-all #wpacu-update-button-area .button{padding:11px 28px;height:auto;font-size:18px}.wpacu-wrap.wpacu-settings-show-all #wpacu-updating-settings{margin-left:224px;top:25px}.wpacu-wrap.wpacu-switch-standard .asset-cleanup-pro_page_wpassetcleanup_settings .wpacu_switch,.wpacu-wrap.wpacu-switch-standard .asset-cleanup_page_wpassetcleanup_settings .wpacu_switch{width:auto;height:auto}.wpacu-wrap.wpacu-switch-standard .asset-cleanup-pro_page_wpassetcleanup_settings .wpacu_switch input,.wpacu-wrap.wpacu-switch-standard .asset-cleanup_page_wpassetcleanup_settings .wpacu_switch input{display:block}.wpacu-wrap.wpacu-switch-standard .asset-cleanup-pro_page_wpassetcleanup_settings .wpacu_switch input[type=checkbox],.wpacu-wrap.wpacu-switch-standard .asset-cleanup_page_wpassetcleanup_settings .wpacu_switch input[type=checkbox]{margin:0 0 3px}.wpacu-wrap.wpacu-switch-standard .asset-cleanup-pro_page_wpassetcleanup_settings .wpacu_switch .wpacu_slider,.wpacu-wrap.wpacu-switch-standard .asset-cleanup_page_wpassetcleanup_settings .wpacu_switch .wpacu_slider{display:none}.wpacu-wrap.wpacu-switch-enhanced .wpacu_switch{position:relative;display:inline-block;width:52px;height:29px}.wpacu-wrap.wpacu-switch-enhanced .wpacu_switch input{display:none}.wpacu-wrap.wpacu-switch-enhanced .wpacu_switch:not(.wpacu_switch_standard) .wpacu_slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#ccc;-webkit-transition:.2s;transition:.2s}.wpacu-wrap.wpacu-switch-enhanced .wpacu_switch:not(.wpacu_switch_standard) .wpacu_slider:before{position:absolute;content:'';height:22px;width:22px;left:4px;bottom:4px;background-color:#fff;-webkit-transition:.2s;transition:.2s}.wpacu-wrap.wpacu-switch-enhanced .wpacu_switch input:checked+.wpacu_slider{background-color:#52af00}.wpacu-wrap.wpacu-switch-enhanced .wpacu_switch input:focus+.wpacu_slider{box-shadow:0 0 1px #52af00}.wpacu-wrap.wpacu-switch-enhanced .wpacu_switch input:checked+.wpacu_slider:before{-webkit-transform:translateX(22px);-ms-transform:translateX(22px);transform:translateX(22px)}.wpacu-wrap.wpacu-switch-enhanced .wpacu_switch .wpacu_slider.wpacu_round:before{border-radius:50%}.wpacu-wrap.wpacu-switch-enhanced .wpacu_switch.wpacu_locked_for_pro{opacity:.3}.asset-cleanup-pro_page_wpassetcleanup_settings .setting_title p.wpacu_subtitle,.asset-cleanup_page_wpassetcleanup_settings .setting_title p.wpacu_subtitle{margin-top:4px;line-height:1.4}.asset-cleanup-pro_page_wpassetcleanup_settings .setting_title p.wpacu_subtitle em,.asset-cleanup_page_wpassetcleanup_settings .setting_title p.wpacu_subtitle em{font-weight:200}.asset-cleanup-pro_page_wpassetcleanup_settings .setting_title p.wpacu_read_more,.asset-cleanup_page_wpassetcleanup_settings .setting_title p.wpacu_read_more{margin-top:-10px;font-style:italic;font-size:12px}.asset-cleanup-pro_page_wpassetcleanup_settings .assets_list_inline_code_status_choices,.asset-cleanup-pro_page_wpassetcleanup_settings .assets_list_layout_areas_status_choices,.asset-cleanup-pro_page_wpassetcleanup_settings .input_style_choices,.asset-cleanup_page_wpassetcleanup_settings .assets_list_inline_code_status_choices,.asset-cleanup_page_wpassetcleanup_settings .assets_list_layout_areas_status_choices,.asset-cleanup_page_wpassetcleanup_settings .input_style_choices{list-style:none;margin:0}.asset-cleanup-pro_page_wpassetcleanup_settings .assets_list_inline_code_status_choices li,.asset-cleanup-pro_page_wpassetcleanup_settings .assets_list_layout_areas_status_choices li,.asset-cleanup-pro_page_wpassetcleanup_settings .input_style_choices li,.asset-cleanup_page_wpassetcleanup_settings .assets_list_inline_code_status_choices li,.asset-cleanup_page_wpassetcleanup_settings .assets_list_layout_areas_status_choices li,.asset-cleanup_page_wpassetcleanup_settings .input_style_choices li{float:left;margin-right:30px}.asset-cleanup-pro_page_wpassetcleanup_settings .assets_list_inline_code_status_choices li:last-child,.asset-cleanup-pro_page_wpassetcleanup_settings .assets_list_layout_areas_status_choices li:last-child,.asset-cleanup-pro_page_wpassetcleanup_settings .input_style_choices li:last-child,.asset-cleanup_page_wpassetcleanup_settings .assets_list_inline_code_status_choices li:last-child,.asset-cleanup_page_wpassetcleanup_settings .assets_list_layout_areas_status_choices li:last-child,.asset-cleanup_page_wpassetcleanup_settings .input_style_choices li:last-child{margin-right:0}#wpacu-assets-list-by-location-selected{background:0 0;border:1px solid #e7e7e7;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;padding:8px;clear:both}.notice.notice-success+.wpacu-wrap.wpacu-settings-area{margin-top:20px}.wpacu-form-table th{vertical-align:top;text-align:left;padding:5px 20px 20px 0;width:200px;line-height:1.3;font-weight:600}.wpacu-form-table th label{color:#23282d;font-weight:600;font-size:14px;text-shadow:none;vertical-align:middle;cursor:pointer}.wpacu-form-table td{padding-bottom:25px}.wpacu-form-table td:last-child p:last-child{margin:0}.wpacu-form-table label input[type=checkbox]{height:19px;width:20px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.wpacu-form-table label input[type=checkbox]:checked,.wpacu-form-table label input[type=checkbox]:hover{border:1px solid green}.wpacu-form-table label input[type=checkbox]:checked:before{color:#52af00;font:400 24px/1 dashicons}#wpacu-settings-vertical-tab-wrap{display:table;width:100%}#wpacu-settings-vertical-tab-wrap *{box-sizing:border-box}.wpacu-settings-tab{display:table-cell;width:19%;height:100%;vertical-align:top}.wpacu-settings-tab a{text-decoration:none;border-left:3px solid transparent;display:block;background-color:#f1f1f1;color:#004567;padding:17px 16px;width:100%;outline:0;text-align:left;cursor:pointer;font-size:14px;font-weight:600;border-bottom:1px solid #ccc}.wpacu-settings-tab a:first-child{border-top:1px solid transparent!important}.wpacu-settings-tab a:last-child{border-bottom:1px solid transparent!important}.wpacu-settings-tab a:hover{background-color:#fff;border-left:3px solid #004567;position:relative}.wpacu-settings-tab a.active{color:#004567;background-color:#fff;border-left:3px solid #004567;position:relative;border-bottom:1px solid #ccc}.wpacu-settings-tab a.active:after{content:'';position:absolute;height:100%;width:1px;top:0;right:-1px;background-color:#fff}.wpacu-settings-tab-content{background-color:#fff;display:none;padding:12px 18px;width:79%;border-left:none;height:100%;border-top-right-radius:10px;border-bottom-right-radius:10px}.wpacu-settings-tab-content h2{padding:0 0 15px;border-bottom:1px solid #e7e7e7}.wpacu-settings-tab-content.active{display:table-cell}#wpacu_minify_css_exceptions_area,#wpacu_minify_js_exceptions_area{margin:16px 0 0}#wpacu-update-button-area{position:relative;margin-left:19%}#wpacu-update-button-area.no-left-margin{margin-left:0}#wpacu-update-button-area p{margin-top:10px}#wpacu-update-button-area .button{padding:5px 18px;height:38px;font-size:15px}#wpacu-updating-settings{position:absolute;margin-left:183px;top:19px;display:none}#combine_loaded_js_info_area{position:relative}#combine_loaded_js_info_area.locked-for-pro:before{position:absolute;content:'';height:100%;width:100%;background:#fff;opacity:.5;z-index:10000}.wrap_bulk_unload_options{width:auto;display:inline-flex;-webkit-flex-wrap:wrap;flex-wrap:wrap}.wrap_bulk_unload_options .wpacu_asset_options_wrap{flex-grow:1;margin:5px 10px 14px 0!important;padding:8px 10px 2px!important}.wrap_bulk_unload_options .wpacu_asset_options_wrap .wpacu_slider_text{position:relative!important;vertical-align:top;left:inherit!important;top:inherit!important}.wpacu-switch-enhanced .wpacu_asset_row .wpacu_switch{position:relative;display:inline-block;width:52px;height:29px;margin-right:5px!important}.wpacu-switch-enhanced .wpacu_asset_row .wpacu_switch input{display:none}.wpacu-switch-enhanced .wpacu_asset_row .wpacu_switch .wpacu_slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#ccc;-webkit-transition:.15s;transition:.15s}.wpacu-switch-enhanced .wpacu_asset_row .wpacu_switch .wpacu_slider:before{position:absolute;content:'';height:22px;width:22px;left:4px;bottom:4px;background-color:#fff;-webkit-transition:.15s;transition:.15s}.wpacu-switch-enhanced .wpacu_asset_row .wpacu_switch input:checked+.wpacu_slider{background-color:#C00}.wpacu-switch-enhanced .wpacu_asset_row .wpacu_switch input:focus+.wpacu_slider{box-shadow:0 0 1px #C00}.wpacu-switch-enhanced .wpacu_asset_row .wpacu_switch input:checked+.wpacu_slider:before{-webkit-transform:translateX(22px);-ms-transform:translateX(22px);transform:translateX(22px)}.wpacu-switch-enhanced .wpacu_asset_row .wpacu_switch .wpacu_slider.wpacu_round:before{border-radius:50%}.wpacu-switch-enhanced .wpacu_asset_row .wpacu_slider_text{position:absolute;left:62px;top:3px}.wpacu_asset_row input{height:auto;min-height:16px}.wpacu_asset_row td{width:100%;text-align:left}.wpacu_asset_row td p:last-child{margin-bottom:0!important}.wpacu_asset_row td .wpacu_asset_options_wrap{padding:8px 10px;margin:15px 0;background:#fff;border:1px solid #eee;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.wpacu_asset_row td .wpacu_asset_options_wrap p:first-child{margin-top:0;margin-bottom:8px!important}.wpacu_asset_row p.wpacu_handle{margin-top:0}.wpacu_asset_row li.wpacu_unload_this_page{display:block!important;position:relative}.wpacu-clearfix:after,.wpacu-clearfix:before{display:table;content:''}.wpacu-contract-expand-area{width:100%;margin:20px 0 0}.wpacu-contract-expand-area .col-left{float:left}.wpacu-contract-expand-area .col-left h4{margin-bottom:0}.wpacu-contract-expand-area .col-right{float:right}.wpacu-clearfix:after{clear:both}.wpacu-wp-button{color:#555;border-color:#ccc;background:#f7f7f7;box-shadow:0 1px 0 #ccc;vertical-align:top}body.wp-admin .wpacu-wp-button{font-size:13px;line-height:26px;height:28px}.wpacu-wp-button.wpacu-wp-button-secondary{display:inline-block;text-decoration:none;height:auto;margin:0 5px 0 0;padding:0 10px 1px;cursor:pointer;border-width:1px;border-style:solid;-webkit-appearance:none;border-radius:3px;white-space:nowrap;box-sizing:border-box}.wpacu-wp-button:hover{background:#fafafa;border-color:#999;color:#23282d}.distinguish-asset-list{list-style:none;margin-left:0;margin-bottom:5px;display:inline-block}.distinguish-asset-list li{float:left;margin-right:20px}.distinguish-asset-list li:last-child{margin-right:0}body[class*=asset-cleanup-pro] a.wpacu-plugin-contracted-wrap-link{padding:16px 6px 16px 41px!important}body[class*=asset-cleanup-pro] .wpacu-area-open .wpacu-plugin-toggle-all{font-size:12px!important;width:calc(100% - 26px)!important}body.wp-admin .wpacu-area-expanded .wpacu-plugin-toggle-all{top:5px}body.wp-admin .wpacu-area-expanded .wpacu-plugin-toggle-all ul li{font-size:12px!important}.wpacu-assets-collapsible-wrap{border:1px solid #cdcdcd}.wpacu-assets-collapsible-wrap.wpacu-by-location{margin-bottom:15px}.wpacu-assets-collapsible-wrap.wpacu-wrap-all,.wpacu-assets-collapsible-wrap.wpacu-wrap-styles{margin-top:20px}.wpacu-assets-collapsible-wrap.wpacu-wrap-scripts{margin-top:10px}.wpacu-assets-collapsible-wrap.wpacu-by-location>a.wpacu-assets-collapsible{padding:15px 15px 15px 43px}.wpacu-assets-collapsible-wrap.wpacu-by-location .wpacu_list_table{border-width:0;margin:0;border-spacing:inherit;width:100%;box-shadow:3px 3px 2px #ddd;border-bottom-right-radius:5px;border-top-right-radius:5px}.wpacu-assets-collapsible-wrap.wpacu-by-location span.wpacu-child-location-name{font-weight:600}.wpacu-assets-collapsible-wrap.wpacu-by-location span.wpacu-child-location-version{font-weight:200}.wpacu-assets-collapsible-wrap.wpacu-by-location .wpacu-location-child-area[data-wpacu-plugin=oxygen] .icon-area{border-radius:50%}.wpacu-assets-collapsible-wrap.wpacu-by-location .wpacu-location-child-area .wpacu-plugin-toggle-all{display:inline-block;padding:0;font-size:13px;width:100%;width:calc(100% + 46px);min-width:250px;position:absolute;left:100%;left:calc(100% + 6px);margin:0;top:4px}.wpacu-assets-collapsible-wrap.wpacu-by-location .wpacu-location-child-area .wpacu-plugin-toggle-all ul{display:inline-block;margin:0;list-style:none;padding-left:13px;padding-top:0}.wpacu-assets-collapsible-wrap.wpacu-by-location .wpacu-location-child-area .wpacu-plugin-toggle-all ul li{padding:0;margin:0;line-height:normal;font-size:14px}.wpacu-assets-collapsible-wrap.wpacu-by-location .wpacu-location-child-area .wpacu-plugin-toggle-all ul li:first-child{font-style:italic;margin-bottom:5px}.wpacu-assets-collapsible-wrap.wpacu-by-location.wpacu-themes .wpacu-assets-collapsible-content>table:last-child{margin-bottom:20px}.wpacu-assets-collapsible-wrap.wpacu-by-location.wpacu-themes .wpacu-assets-collapsible-content .wpacu-location-child-area .wpacu-area-title{display:inline;position:relative;z-index:1}.wpacu-assets-collapsible-wrap.wpacu-by-location.wpacu-themes .wpacu-assets-collapsible-content .wpacu-location-child-area .wpacu-area-title:after{content:'';position:absolute;width:100%;left:0;bottom:0;height:1px;background-color:#fdfdfd}.wpacu-assets-collapsible-wrap.wpacu-by-location.wpacu-plugins .wpacu-assets-collapsible-content .wpacu-plugin-assets-wrap{padding:0 0 10px}.wpacu-assets-collapsible-wrap.wpacu-by-location.wpacu-plugins .wpacu-assets-collapsible-content .wpacu-plugin-assets-wrap.wpacu-area-open .wpacu-plugin-toggle-all{display:inline-block;padding:7px 12px 16px;font-size:14px;width:100%;text-align:left;border-left:1px solid #cdcdcd;border-right:1px solid #cdcdcd}.wpacu-assets-collapsible-wrap.wpacu-by-location.wpacu-plugins .wpacu-assets-collapsible-content .wpacu-plugin-assets-wrap.wpacu-area-open.wpacu-plugin-assets-last{margin-bottom:18px}.wpacu-assets-collapsible-wrap.wpacu-by-location.wpacu-plugins .wpacu-assets-collapsible-content a.wpacu-plugin-contracted-wrap-link{color:inherit;text-decoration:none;font-weight:inherit;font-style:inherit;font-size:105%;line-height:initial;height:auto;margin:14px 0 0;padding:13px 6px 14px 39px;position:relative;display:block}.wpacu-assets-collapsible-wrap.wpacu-by-location.wpacu-plugins .wpacu-assets-collapsible-content a.wpacu-plugin-contracted-wrap-link:after{position:absolute;font-size:18px;font-family:Dashicons;right:12px;top:14px;content:"\f132"}.wpacu-assets-collapsible-wrap.wpacu-by-location.wpacu-plugins .wpacu-assets-collapsible-content a.wpacu-plugin-contracted-wrap-link.wpacu-link-open:after{content:"\f460"}.wpacu-assets-collapsible-wrap.wpacu-by-location.wpacu-plugins .wpacu-assets-collapsible-content a.wpacu-plugin-contracted-wrap-link.wpacu-link-closed{border:1px solid #cdcdcd}.wpacu-assets-collapsible-wrap.wpacu-by-location.wpacu-plugins .wpacu-assets-collapsible-content a.wpacu-plugin-contracted-wrap-link:hover{border:1px solid #878787;background:#f9f9f9}.wpacu-assets-collapsible-wrap.wpacu-by-location.wpacu-plugins .wpacu-assets-collapsible-content a.wpacu-plugin-contracted-wrap-link:hover.wpacu-link-closed{box-shadow:3px 3px 2px #ddd}.wpacu-assets-collapsible-wrap.wpacu-by-location.wpacu-plugins .wpacu-assets-collapsible-content a.wpacu-plugin-contracted-wrap-link.wpacu-link-open{border-top:1px solid #cdcdcd;border-left:1px solid #cdcdcd;border-right:1px solid #cdcdcd;border-bottom:none}.wpacu-assets-collapsible-wrap.wpacu-by-location.wpacu-plugins .wpacu-assets-collapsible-content a.wpacu-plugin-contracted-wrap-link.wpacu-link-closed.wpacu-last-wrap-link{margin-bottom:20px}.wpacu-assets-collapsible-wrap.wpacu-by-location.wpacu-plugins .wpacu-assets-collapsible-content a.wpacu-plugin-contracted-wrap-link .icon-plugin-default{top:10px;left:10px;width:30px;height:30px}.wpacu-assets-collapsible-wrap.wpacu-by-location.wpacu-plugins .wpacu-assets-collapsible-content a.wpacu-plugin-contracted-wrap-link .icon-plugin-default .icon-area{width:30px;height:30px}.wpacu-assets-collapsible-wrap.wpacu-by-location.wpacu-plugins .wpacu-assets-collapsible-content a.wpacu-plugin-contracted-wrap-link .icon-plugin-default .icon-area:before{font-size:22px;line-height:22px;top:4px;left:5px}.wpacu-assets-collapsible-wrap.wpacu-by-location.wpacu-plugins .wpacu-assets-collapsible-content a.wpacu-plugin-contracted-wrap-link .wpacu-area-title{position:relative;padding:17px 10px 16px 46px;z-index:1}.wpacu-assets-collapsible-wrap.wpacu-by-location.wpacu-plugins .wpacu-assets-collapsible-content a.wpacu-plugin-contracted-wrap-link .wpacu-area-title:after{content:'';position:absolute;width:100%;left:0;bottom:0;height:1px;background-color:#fdfdfd}.wpacu-assets-collapsible-wrap.wpacu-by-location.wpacu-plugins .wpacu-assets-collapsible-content a.wpacu-plugin-contracted-wrap-link.wpacu-area-last{margin-bottom:18px}.wpacu-assets-collapsible-wrap.wpacu-by-location.wpacu-plugins .wpacu-assets-collapsible-content .wpacu-area-open{padding:0;max-height:100%}.wpacu-assets-collapsible-wrap.wpacu-by-location.wpacu-plugins .wpacu-assets-collapsible-content .wpacu-area-closed{padding:0;overflow:hidden;max-height:0}.wpacu-assets-collapsible-wrap.wpacu-by-location.wpacu-plugins .wpacu-assets-collapsible-content>table:last-child{margin-bottom:20px}.wpacu-assets-collapsible-wrap.wpacu-by-location.wpacu-themes .wpacu-assets-collapsible-content .wpacu-location-child-area .wpacu-area-title{margin-top:0;margin-bottom:-1px;padding:14px 10px 16px 12px!important}.wpacu-assets-collapsible-wrap.wpacu-by-location.wpacu-themes .wpacu-assets-collapsible-content .wpacu-location-child-area .wpacu-area-title.wpacu-theme-has-icon{padding:18px 10px 16px 58px!important}.wpacu-assets-collapsible-wrap.wpacu-by-location .wpacu-assets-collapsible-content .wpacu-location-child-area{margin-top:22px;margin-bottom:-1px;font-size:110%;line-height:initial}.wpacu-assets-collapsible-wrap.wpacu-by-location .wpacu-assets-collapsible-content .wpacu-location-child-area.wpacu-location-child-area-first{margin-top:2px}.wpacu-assets-collapsible-wrap.wpacu-by-location .wpacu-assets-collapsible-content .wpacu-location-child-area.wpacu-area-expanded .wpacu-area-title{display:inline-block;z-index:1;padding:17px 10px 16px 46px}.wpacu-assets-collapsible-wrap.wpacu-by-location .wpacu-assets-collapsible-content .wpacu-location-child-area .wpacu-area-title{display:inline;border-top-right-radius:8px;border-top-left-radius:8px;background-color:#f9f9f9;border-left:1px solid #cdcdcd;border-top:1px solid #cdcdcd;border-bottom:1px solid transparent;border-right:1px solid #cdcdcd;position:relative}.wpacu-assets-collapsible-wrap.wpacu-by-location .icon-plugin-default{position:absolute;padding:0;top:10px;left:10px;width:37px;height:37px}.wpacu-assets-collapsible-wrap.wpacu-by-location .icon-plugin-default:not(.has-icon){color:#b4b9be;background-color:#eee;box-shadow:inset 0 0 10px rgba(160,165,170,.15);-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.wpacu-assets-collapsible-wrap.wpacu-by-location .icon-plugin-default:not(.has-icon) .icon-area:before{content:"\f106";font-family:Dashicons;position:absolute;font-size:28px;line-height:28px;top:5px;left:5px}.wpacu-assets-collapsible-wrap.wpacu-by-location .icon-plugin-default .icon-area{position:relative;width:37px;height:37px}.wpacu-assets-collapsible-wrap.wpacu-by-location .icon-theme{position:absolute;padding:0;top:10px;left:10px;width:37px;height:37px}.wpacu-assets-collapsible-wrap.wpacu-by-location .icon-theme .icon-area{position:relative;width:37px;height:37px}.wpacu-assets-collapsible-wrap.wpacu-wp_core{border:1px solid #c00}.wpacu-assets-collapsible-wrap.wpacu-external .wpacu-assets-collapsible-content,.wpacu-assets-collapsible-wrap.wpacu-wp_core .wpacu-assets-collapsible-content{padding:0}.wpacu-assets-collapsible-wrap.wpacu-external .wpacu-assets-collapsible-content .wpacu_list_table,.wpacu-assets-collapsible-wrap.wpacu-wp_core .wpacu-assets-collapsible-content .wpacu_list_table{width:100%;margin:0}.wpacu-assets-collapsible-wrap.wpacu-external .wpacu-assets-collapsible-content .wpacu_list_table .wpacu_asset_row td,.wpacu-assets-collapsible-wrap.wpacu-wp_core .wpacu-assets-collapsible-content .wpacu_list_table .wpacu_asset_row td{border-left:hidden;border-right:hidden;border-bottom:1px solid #cdcdcd}.wpacu-assets-collapsible-wrap.wpacu-external .wpacu-assets-collapsible-content .wpacu_list_table .wpacu_asset_row:last-child,.wpacu-assets-collapsible-wrap.wpacu-wp_core .wpacu-assets-collapsible-content .wpacu_list_table .wpacu_asset_row:last-child{margin-bottom:0!important}.wpacu-assets-collapsible-wrap.wpacu-external .wpacu-assets-collapsible-content .wpacu_list_table .wpacu_asset_row:last-child td:last-child,.wpacu-assets-collapsible-wrap.wpacu-wp_core .wpacu-assets-collapsible-content .wpacu_list_table .wpacu_asset_row:last-child td:last-child{border-bottom:hidden}a.wpacu-assets-collapsible{color:#000;font-size:20px;text-decoration:none;display:block;position:relative;background-color:#f1f3f8;cursor:pointer;padding:15px 15px 15px 36px;width:auto;border:none;text-align:left;outline:0}a.wpacu-assets-collapsible>span.dashicons{font-size:25px;line-height:normal;position:absolute;top:15px;top:calc(50% - 21px);left:22px;-webkit-transform:translate(-50%,50%);transform:translate(-50%,50%)}a.wpacu-assets-collapsible:hover{background-color:#f1f3f8;text-decoration:none}a.wpacu-assets-collapsible:after{position:absolute;font-size:22px;font-family:Dashicons;right:14px;top:16px}a.wpacu-assets-collapsible:not(.wpacu-assets-collapsible-active):after{content:"\f132"}a.wpacu-assets-collapsible.wpacu-assets-collapsible-active{background-color:#f1f3f8}a.wpacu-assets-collapsible.wpacu-assets-collapsible-active:after{content:"\f460"}.wpacu-assets-collapsible-content{padding:0 16px;max-height:0;overflow:hidden;background-color:#fbfbfb8c}.wpacu-assets-collapsible-content .wpacu-assets-note{margin:0;padding:15px 15px 10px}.wpacu-assets-collapsible-content>div:not(.wpacu-assets-table-list-wrap){padding:16px 0 0}.wpacu-assets-collapsible-content>div>p:first-child{margin-top:0}.wpacu-assets-collapsible-content.wpacu-open{max-height:100%}a.wpacu-assets-inline-code-collapsible{color:inherit;font-size:14px;text-decoration:none;display:inline-block;position:relative;cursor:pointer;width:auto;outline:0;background:#f1f3f8;border:1px solid #cdcdcd;padding:4px 21px 4px 8px;margin:0 0 0 6px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}a.wpacu-assets-inline-code-collapsible:hover{border:1px solid #5c5c5c}a.wpacu-assets-inline-code-collapsible:after{position:absolute;font-size:15px;font-family:Dashicons;right:-3px;top:-1px;height:14px;width:14px;-webkit-transform:translate(-50%,50%);transform:translate(-50%,50%)}a.wpacu-assets-inline-code-collapsible:not(.wpacu-assets-inline-code-collapsible-active):after{content:"\f132"}a.wpacu-assets-inline-code-collapsible.wpacu-assets-inline-code-collapsible-active:after{content:"\f460"}.wpacu-assets-inline-code-collapsible-content{font-size:80%;padding:0 8px;max-height:0;overflow:hidden;background-color:#fbfbfb8c}.wpacu-assets-inline-code-collapsible-content>div{padding:7px 8px 0}.wpacu-assets-inline-code-collapsible-content>div>p{line-height:normal!important}.wpacu-assets-inline-code-collapsible-content>div>p:first-child{margin-top:0}.wpacu-assets-inline-code-collapsible-content.wpacu-open{max-height:100%}.wpacu-wrap-choose-position,.wpacu-wrap-choose-position>div{display:inline}.wpacu-wrap-choose-position select{width:auto;font-size:inherit;display:inline;margin-left:6px;margin-right:4px}.wpacu_table_wrap{margin:20px 0 0}.wpacu_table_wrap>table{border:1px solid #cdcdcd}.wpacu_table_wrap .table{width:100%;max-width:100%;margin-bottom:1rem;-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px}.wpacu_table_wrap .table td,.wpacu_table_wrap .table th{padding:.75rem;vertical-align:top;border-top:1px solid #eceeef}.wpacu_table_wrap .table thead th{vertical-align:bottom;border-bottom:2px solid #eceeef}.wpacu_table_wrap .table tbody+tbody{border-top:2px solid #eceeef}.wpacu_table_wrap .table .table{background-color:#fff}.wpacu_table_wrap .table-sm td,.wpacu_table_wrap .table-sm th{padding:.3rem}.wpacu_table_wrap .table-bordered,.wpacu_table_wrap .table-bordered td,.wpacu_table_wrap .table-bordered th{border:1px solid #eceeef}.wpacu_table_wrap .table-bordered thead td,.wpacu_table_wrap .table-bordered thead th{border-bottom-width:2px}.wpacu_table_wrap .table-striped tbody tr:nth-of-type(even){background-color:#f9f9f9}.wpacu_table_wrap .table-striped tbody tr:nth-of-type(odd){background-color:#fff}.wpacu_table_wrap .table-active,.wpacu_table_wrap .table-active>td,.wpacu_table_wrap .table-active>th,.wpacu_table_wrap .table-hover .table-active:hover,.wpacu_table_wrap .table-hover .table-active:hover>td,.wpacu_table_wrap .table-hover .table-active:hover>th,.wpacu_table_wrap .table-hover tbody tr:hover{background-color:rgba(0,0,0,.075)}.wpacu_table_wrap .table-success,.wpacu_table_wrap .table-success>td,.wpacu_table_wrap .table-success>th{background-color:#dff0d8}.wpacu_table_wrap .table-hover .table-success:hover,.wpacu_table_wrap .table-hover .table-success:hover>td,.wpacu_table_wrap .table-hover .table-success:hover>th{background-color:#d0e9c6}.wpacu_table_wrap .table-info,.wpacu_table_wrap .table-info>td,.wpacu_table_wrap .table-info>th{background-color:#d9edf7}.wpacu_table_wrap .table-hover .table-info:hover,.wpacu_table_wrap .table-hover .table-info:hover>td,.wpacu_table_wrap .table-hover .table-info:hover>th{background-color:#c4e3f3}.wpacu_table_wrap .table-warning,.wpacu_table_wrap .table-warning>td,.wpacu_table_wrap .table-warning>th{background-color:#fcf8e3}.wpacu_table_wrap .table-hover .table-warning:hover,.wpacu_table_wrap .table-hover .table-warning:hover>td,.wpacu_table_wrap .table-hover .table-warning:hover>th{background-color:#faf2cc}.wpacu_table_wrap .table-danger,.wpacu_table_wrap .table-danger>td,.wpacu_table_wrap .table-danger>th{background-color:#f2dede}.wpacu_table_wrap .table-hover .table-danger:hover,.wpacu_table_wrap .table-hover .table-danger:hover>td,.wpacu_table_wrap .table-hover .table-danger:hover>th{background-color:#ebcccc}.wpacu_table_wrap .thead-inverse th{color:#fff;background-color:#292b2c}.wpacu_table_wrap .thead-default th{color:#464a4c;background-color:#eceeef}.wpacu_table_wrap .table-inverse{color:#fff;background-color:#292b2c}.wpacu_table_wrap .table-inverse td,.wpacu_table_wrap .table-inverse th,.wpacu_table_wrap .table-inverse thead th{border-color:#fff}.wpacu_table_wrap .table-inverse.table-bordered,.wpacu_table_wrap .table-responsive.table-bordered{border:0}.wpacu_table_wrap .table-responsive{display:block;width:100%;overflow-x:auto;-ms-overflow-style:-ms-autohiding-scrollbar}.wp-list-table .wpacu_remove_global_attr_row.wpacu_selected,.wp-list-table .wpacu_restore_position_row.wpacu_selected{background:#e7e7e7}ul.hire-reasons{margin-bottom:20px}ul.hire-reasons li{font-size:14px;line-height:22px;margin-bottom:12px}ul.hire-reasons li .dashicons{font-size:23px;line-height:23px}ul.hire-reasons li .dashicons.dashicons-yes{color:green}ol.getting-started li{font-size:14px;line-height:22px;margin-bottom:8px}.wpacu-get-help-wrap p{font-size:14px}.wpacu-get-help-wrap .help-content-wrap{margin:20px 0 25px;display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-moz-flex;display:-webkit-flex;display:flex;width:100%}@media only screen and (min-width:768px){.wpacu-get-help-wrap .help-content-wrap{-webkit-box-align:start;-ms-flex-align:start;-ms-grid-row-align:flex-start;align-items:flex-start}}@media only screen and (max-width:767px){.wpacu-get-help-wrap .help-content-wrap{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}}.wpacu-get-help-wrap .help-content-wrap .help-content{padding:15px;background:#fff;border:1px solid #E0E0E0;-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px;box-shadow:2px 3px 8px 0 #231f2038;flex:1 1 50%;margin-bottom:10px}.wpacu-get-help-wrap .help-content-wrap .help-content .content-title{margin:5px 0 15px}.wpacu-get-help-wrap .help-content-wrap .help-content .cols-wrap{width:100%;margin:0 auto;display:table}.wpacu-get-help-wrap .help-content-wrap .help-content .wpacu-image-area{margin:5px 0 0;position:relative}.wpacu-get-help-wrap .help-content-wrap .help-content .wpacu-image-area.col-left{float:left;width:48%}.wpacu-get-help-wrap .help-content-wrap .help-content .wpacu-image-area.col-right{float:right;width:48%}.wpacu-get-help-wrap .help-content-wrap .help-content .wpacu-image-area.activate-plugin img{max-width:280px}.wpacu-get-help-wrap .help-content-wrap .help-content .wpacu-image-area img{width:99%;margin:8px 0;border:1px solid #cdcdcd;-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px}.wpacu-get-help-wrap .help-content-wrap .help-content.upgrade-help{order:2}@media only screen and (min-width:768px){.wpacu-get-help-wrap .help-content-wrap .help-content{margin-right:24px}.wpacu-get-help-wrap .help-content-wrap .help-content.upgrade-help{margin-right:0}}.wpacu-get-help-wrap .help-content-wrap .help-content.tech-help{order:1}@media only screen and (max-width:767px){.wpacu-get-help-wrap .help-content-wrap .help-content.tech-help{margin-bottom:30px}}.wpacu-get-help-wrap .help-content-wrap .help-content ul{list-style:none;padding-left:0}.wpacu-get-help-wrap .help-content-wrap .help-content ul li{font-size:14px;line-height:22px;margin-bottom:15px}.wpacu-get-help-wrap .help-content-wrap .help-content p:last-child,.wpacu-get-help-wrap .help-content-wrap .help-content ul li:last-child{margin-bottom:0}#wpacu-license-data-remove-area{display:none;margin:10px 0 25px}#wpacu-license-data-remove-area.wpacu-visible{display:block}span#wpacu-license-data-removed-msg{display:block;padding-left:26px}#wpacu-warning-read{display:none;margin:10px 0}#wpacu-warning-read span.dashicons-warning{color:#c00}#wpacu-warning-read.wpacu-visible{display:block}#wpacu-reset-submit-area{margin:10px 0;clear:both}#wpacu-reset-submit-btn{margin:10px 0 0}.wpacu-tools-area{margin:10px 20px 0 2px}.wpacu-tools-area .wpacu-tools-container{background:#fff;padding:15px;border:1px solid #cdcdcd;width:96%}.wpacu-tools-area .wpacu-tools-container form>div:first-child{margin:0 0 10px}.wpacu-tools-area .wpacu-tools-container form .wpacu-warning{display:none;box-sizing:border-box;margin-top:10px}.wpacu-tools-area .wpacu-tools-container form .wpacu-warning p{margin:0 0 10px;line-height:22px}.wpacu-tools-area .wpacu-tools-container form .wpacu-warning p:only-child{margin:0}.wpacu-tools-area .wpacu-tools-container form .wpacu-warning ul{font-size:13px;list-style-type:disc;padding-left:30px}.wpacu-tools-area .wpacu-tools-container form .wpacu-warning.wpacu-visible{display:block}.wpacu-about-wrap .wpacu-about-text img{width:auto;height:150px;position:absolute;top:20px;right:-20px}@media only screen and (max-width:767px){.wpacu-about-wrap h1{margin:20px}.wpacu-about-wrap .wpacu-about-text img{display:none}.wpacu-about-wrap .wpacu-about-text{margin:20px}}.wpacu-about-wrap .about-wrap-content .area-title{font-size:19px;line-height:19px;margin-bottom:0}.wpacu-about-wrap hr{margin:10px 0}.wpacu-lite-vs-pro-wrap ul{display:flex;top:0;z-index:10;padding-bottom:14px}.wpacu-lite-vs-pro-wrap li{list-style:none;flex:1}.wpacu-lite-vs-pro-wrap li:last-child{border-right:1px solid #DDD}.wpacu-lite-vs-pro-wrap button{width:100%;border:1px solid #DDD;border-right:0;border-top:0;padding:10px;background:#FFF;font-size:14px;font-weight:700;height:60px;color:#999}.wpacu-lite-vs-pro-wrap li.active button{background:#F5F5F5;color:#000}.wpacu-lite-vs-pro-wrap table{border-collapse:collapse;table-layout:fixed;width:100%}.wpacu-lite-vs-pro-wrap th{background:inherit}.wpacu-lite-vs-pro-wrap tr.first{background:inherit;font-size:18px}.wpacu-lite-vs-pro-wrap tr.first .bg-lite{border-top:4px solid #6d6e70;background:#fff;color:#6d6e70}.wpacu-lite-vs-pro-wrap tr.first .bg-pro{border-top:4px solid green;background:#fff;color:green}.wpacu-lite-vs-pro-wrap tr:not(.first){background:#fff}.wpacu-lite-vs-pro-wrap tr:not(:last-child):hover{background:#f8f8f8}.wpacu-lite-vs-pro-wrap td,.wpacu-lite-vs-pro-wrap th{height:53px;border:1px solid #DDD;padding:10px 16px;empty-cells:show;text-align:left}@media only screen and (max-width:767px){.wpacu-lite-vs-pro-wrap td,.wpacu-lite-vs-pro-wrap th{font-size:14px}}.wpacu-lite-vs-pro-wrap td+td,.wpacu-lite-vs-pro-wrap th+th{text-align:center;display:none}.wpacu-lite-vs-pro-wrap td.default{display:table-cell}.wpacu-lite-vs-pro-wrap .txt-l{font-size:28px;font-weight:700}.wpacu-lite-vs-pro-wrap .txt-top{position:relative;top:-9px;left:-2px}.wpacu-lite-vs-pro-wrap svg{width:18px;height:18px}.wpacu-lite-vs-pro-wrap svg path{fill:green}.wpacu-lite-vs-pro-wrap .tick{color:#2CA01C}.wpacu-lite-vs-pro-wrap .tick img{fill:#2CA01C}@media only screen and (max-width:767px){.wpacu-lite-vs-pro-wrap .txt-l{font-size:20px}.wpacu-lite-vs-pro-wrap .tick{font-size:15px}}.wpacu-lite-vs-pro-wrap .na{font-size:18px;opacity:.3;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=30)"}.wpacu-lite-vs-pro-wrap .hide{border:0;background:0 0}.wpacu-lite-vs-pro-wrap td,.wpacu-lite-vs-pro-wrap th{display:table-cell!important;width:auto}.wpacu-lite-vs-pro-wrap td+td,.wpacu-lite-vs-pro-wrap th+th{width:130px}@media only screen and (max-width:767px){.wpacu-lite-vs-pro-wrap .na{font-size:15px}.wpacu-lite-vs-pro-wrap td+td,.wpacu-lite-vs-pro-wrap th+th{width:42px}}@media only screen and (min-width:768px){.wpacu-lite-vs-pro-wrap td .button{font-size:16px!important}}@media only screen and (max-width:767px){.wpacu-lite-vs-pro-wrap td .button{font-size:14px!important;padding:0 20px!important}.wpacu-lite-vs-pro-wrap td .button.button-primary{margin-top:6px;margin-bottom:14px}}@media only screen and (min-width:768px){.wpacu-lite-vs-pro-wrap{margin-bottom:40px;clear:both}}.wpacu-video-areas>div{padding:20px;-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px}.wpacu-video-areas>div:nth-child(odd){background:#fff}.wpacu-video-areas>div:nth-child(even){background:inherit}@media only screen and (min-width:1200px){.wpacu-video-areas .wpacu-video-area-wrapper{margin:0 0 15px;display:flex}.wpacu-video-areas .wpacu-video-area-wrapper .wpacu-col-right{padding:0 20px 0 25px}}@media only screen and (min-width:992px) and (max-width:1199px){.wpacu-video-areas .wpacu-video-area-wrapper{margin:0 0 40px}}.wpacu-video-areas .wpacu-video-area-wrapper ol{font-size:14px}.wpacu-video-areas .wpacu-video-area-wrapper ul{font-size:14px;list-style:disc;margin-left:22px}@media only screen and (min-width:1200px){.wpacu-video-areas .wpacu-video-area-wrapper .wpacu-col-right p:first-child{margin-top:0}.wpacu-video-areas .wpacu-video-area-wrapper .wpacu-col-right p:last-child{margin-bottom:0}}@media only screen and (max-width:1199px){.wpacu-video-areas .wpacu-video-area-wrapper .wpacu-video-wrapper{position:relative;padding-bottom:56.25%;padding-top:30px;height:0;overflow:hidden}.wpacu-video-areas .wpacu-video-area-wrapper .wpacu-video-wrapper iframe{position:absolute;top:0;left:0;width:100%;height:100%}}#wpassetcleanup_asset_list.postbox h2{padding-left:52px!important;position:relative}#wpassetcleanup_asset_list.postbox h2:before{content:'';position:absolute;background-image:url(images/wpacu-logo-transparent-bg-v1.png);background-size:cover;top:6px;left:13px;width:33px;height:26px;opacity:.8;-webkit-filter:grayscale(100%);filter:grayscale(100%)}body.wp-admin .wpacu-modal{display:none;position:fixed;z-index:1000000;padding-top:15%;left:0;top:0;width:100%;height:100%;overflow:auto;background-color:#000;background-color:rgba(0,0,0,.4)}body.wp-admin .wpacu-modal-content{background-color:#fefefe;margin:auto;padding:20px;border:1px solid #888;width:80%;max-width:600px;border-radius:10px}body.wp-admin .wpacu-close{color:#aaa;float:right;font-size:28px;font-weight:700}body.wp-admin .wpacu-close:focus,body.wp-admin .wpacu-close:hover{color:#000;text-decoration:none;cursor:pointer}.wpacu-bulk-changes-tabs{display:table;position:relative;overflow:hidden;margin:0;width:100%}.wpacu-bulk-changes-tabs li{border-top:1px solid rgba(40,44,42,.1);border-left:1px solid rgba(40,44,42,.1);border-bottom:1px solid rgba(40,44,42,.1);float:left;line-height:38px;padding:0;position:relative;margin-bottom:12px}.wpacu-bulk-changes-tabs li:last-child{border-right:1px solid rgba(40,44,42,.1)}.wpacu-bulk-changes-tabs a{position:relative;background:rgba(40,44,42,.05);color:#004567;font-size:14px;font-weight:500;display:block;letter-spacing:0;outline:0;padding:6px 20px;text-decoration:none;border-top:3px solid transparent}.wpacu-bulk-changes-tabs a:hover{background:#f1f1f1;border-top:3px solid transparent}.wpacu-bulk-changes-tabs .current a{background:#fff;border-top:3px solid #004567}.wpacu-bulk-changes-tabs .current a:hover{background:#fff}.wpacu-bulk-changes-tabs .current a:after,.wpacu-bulk-changes-tabs .current a:before{top:100%;left:50%;border:solid transparent;content:" ";height:0;width:0;position:absolute;pointer-events:none}.wpacu-bulk-changes-tabs .current a:after{border-color:rgba(136,183,213,0);border-top-color:#fff;border-width:12px;margin-left:-12px}.wpacu-bulk-changes-tabs .current a:before{border-color:rgba(194,225,245,0);border-top-color:rgba(40,44,42,.1);border-width:13px;margin-left:-13px}
classes/AdminBar.php ADDED
@@ -0,0 +1,115 @@
1
+ <?php
2
+ namespace WpAssetCleanUp;
3
+
4
+ /**
5
+ * Class AdminBar
6
+ * @package WpAssetCleanUp
7
+ */
8
+ class AdminBar
9
+ {
10
+ /**
11
+ *
12
+ */
13
+ public function __construct()
14
+ {
15
+ add_action( 'init', array( $this, 'topBar' ) );
16
+ }
17
+
18
+ /**
19
+ *
20
+ */
21
+ public function topBar()
22
+ {
23
+ if (Menu::userCanManageAssets()) {
24
+ add_action( 'admin_bar_menu', array( $this, 'topBarInfo' ), 999 );
25
+ }
26
+ }
27
+
28
+ /**
29
+ * @param $wp_admin_bar
30
+ */
31
+ public function topBarInfo($wp_admin_bar)
32
+ {
33
+ $topTitle = WPACU_PLUGIN_TITLE;
34
+
35
+ if (Main::instance()->settings['test_mode']) {
36
+ $topTitle .= '&nbsp; <span class="dashicons dashicons-admin-tools"></span> <strong>TEST MODE</strong> is <strong>ON</strong>';
37
+ }
38
+
39
+ $goBackToCurrentUrl = '&_wp_http_referer=' . urlencode( wp_unslash( $_SERVER['REQUEST_URI'] ) );
40
+
41
+ $wp_admin_bar->add_menu(array(
42
+ 'id' => 'assetcleanup-parent',
43
+ 'title' => $topTitle,
44
+ 'href' => admin_url( 'admin.php?page=' . WPACU_PLUGIN_ID . '_settings')
45
+ ));
46
+
47
+ $wp_admin_bar->add_menu(array(
48
+ 'parent' => 'assetcleanup-parent',
49
+ 'id' => 'assetcleanup-settings',
50
+ 'title' => 'Settings',
51
+ 'href' => admin_url( 'admin.php?page=' . WPACU_PLUGIN_ID . '_settings')
52
+ ));
53
+
54
+ $wp_admin_bar->add_menu( array(
55
+ 'parent' => 'assetcleanup-parent',
56
+ 'id' => 'assetcleanup-clear-css-js-files-cache',
57
+ 'title' => 'Clear CSS/JS Files Cache',
58
+ 'href' => wp_nonce_url( admin_url( 'admin-post.php?action=assetcleanup_clear_assets_cache' . $goBackToCurrentUrl ),
59
+ 'assetcleanup_clear_assets_cache' )
60
+ ) );
61
+
62
+ // Only trigger in the front-end view
63
+ if (! is_admin()) {
64
+ if ( ! Misc::isHomePage() ) {
65
+ // Not on the home page
66
+ $homepageManageAssetsHref = Main::instance()->frontendShow()
67
+ ? get_site_url().'#wpacu_wrap_assets'
68
+ : admin_url( 'admin.php?page=' . WPACU_PLUGIN_ID . '_assets_manager&wpacu_for=homepage' );
69
+
70
+ $wp_admin_bar->add_menu(array(
71
+ 'parent' => 'assetcleanup-parent',
72
+ 'id' => 'assetcleanup-homepage',
73
+ 'title' => 'Manage Homepage Assets',
74
+ 'href' => $homepageManageAssetsHref
75
+ ));
76
+ } else {
77
+ // On the home page
78
+ // Front-end view is disabled! Go to Dashboard link
79
+ if ( ! Main::instance()->frontendShow() ) {
80
+ $wp_admin_bar->add_menu( array(
81
+ 'parent' => 'assetcleanup-parent',
82
+ 'id' => 'assetcleanup-homepage',
83
+ 'title' => 'Manage Page Assets',
84
+ 'href' => admin_url( 'admin.php?page=' . WPACU_PLUGIN_ID . '_assets_manager&wpacu_for=homepage' )
85
+ ) );
86
+ }
87
+ }
88
+ }
89
+
90
+ if (! is_admin() && Main::instance()->frontendShow()) {
91
+ $wp_admin_bar->add_menu(array(
92
+ 'parent' => 'assetcleanup-parent',
93
+ 'id' => 'assetcleanup-jump-to-assets-list',
94
+ 'title' => 'Manage Page Assets',
95
+ 'href' => '#wpacu_wrap_assets'
96
+ ));
97
+ }
98
+
99
+ $wp_admin_bar->add_menu(array(
100
+ 'parent' => 'assetcleanup-parent',
101
+ 'id' => 'assetcleanup-bulk-unloaded',
102
+ 'title' => 'Bulk Changes',
103
+ 'href' => admin_url( 'admin.php?page=' . WPACU_PLUGIN_ID . '_bulk_unloads')
104
+ ));
105
+
106
+ $wp_admin_bar->add_menu(array(
107
+ 'parent' => 'assetcleanup-parent',
108
+ 'id' => 'assetcleanup-support-forum',
109
+ 'title' => 'Support Forum',
110
+ 'href' => 'https://wordpress.org/support/plugin/wp-asset-clean-up',
111
+ 'meta' => array('target' => '_blank')
112
+ ));
113
+
114
+ }
115
+ }
classes/AssetsPagesManager.php ADDED
@@ -0,0 +1,100 @@
1
+ <?php
2
+ namespace WpAssetCleanUp;
3
+
4
+ /**
5
+ * Class AssetsPagesManager
6
+ * @package WpAssetCleanUp
7
+ */
8
+ class AssetsPagesManager
9
+ {
10
+ /**
11
+ * @var array
12
+ */
13
+ public $data = array();
14
+
15
+ /**
16
+ * AssetsPagesManager constructor.
17
+ */
18
+ public function __construct()
19
+ {
20
+ $this->data = array('for' => 'homepage'); // default
21
+
22
+ if (isset($_GET['wpacu_for']) && $_GET['wpacu_for'] !== '') {
23
+ $this->data['for'] = sanitize_text_field($_GET['wpacu_for']);
24
+ }
25
+
26
+ if (isset($_GET['page'])) {
27
+ $this->data['page'] = $_GET['page'];
28
+ }
29
+
30
+ if ($this->data['for'] === 'homepage') {
31
+ $wpacuSettings = new Settings;
32
+ $this->data['wpacu_settings'] = $wpacuSettings->getAll();
33
+
34
+ $this->homepage();
35
+ }
36
+ }
37
+
38
+ /**
39
+ *
40
+ */
41
+ public function homepage()
42
+ {
43
+ $this->data['nonce_name'] = WPACU_PLUGIN_ID . '_home_page_update';
44
+ $this->data['show_on_front'] = Misc::getShowOnFront();
45
+
46
+ $isHomePageEdit = ( Misc::getVar('get', 'page') === WPACU_PLUGIN_ID . '_assets_manager'
47
+ && $this->data['for'] === 'homepage' );
48
+
49
+ // Only continue if we are on the plugin's homepage edit mode
50
+ if (! $isHomePageEdit) {
51
+ return;
52
+ }
53
+
54
+ if ($this->data['show_on_front'] === 'page') {
55
+ // Front page displays: A Static Page
56
+ $this->data['page_on_front'] = get_option('page_on_front');
57
+
58
+ if ($this->data['page_on_front']) {
59
+ $this->data['page_on_front_title'] = get_the_title($this->data['page_on_front']);
60
+ }
61
+
62
+ $this->data['page_for_posts'] = get_option('page_for_posts');
63
+
64
+ if ($this->data['page_for_posts']) {
65
+ $this->data['page_for_posts_title'] = get_the_title($this->data['page_for_posts']);
66
+ }
67
+ } else {
68
+ // Your latest posts
69
+ $postUrl = get_site_url();
70
+
71
+ if (substr($postUrl, -1) !== '/') {
72
+ $postUrl .= '/';
73
+ }
74
+
75
+ $this->data['site_url'] = $postUrl;
76
+ }
77
+
78
+ if (! empty($_POST)) {
79
+ // Update action?
80
+ $wpacuNoLoadAssets = Misc::getVar( 'post', WPACU_PLUGIN_ID, array() );
81
+ $wpacuHomePageUpdate = Misc::getVar( 'post', 'wpacu_manage_home_page_assets', false );
82
+
83
+ // Could Be an Empty Array as Well so just is_array() is enough to use
84
+ if ( is_array( $wpacuNoLoadAssets ) && $wpacuHomePageUpdate ) {
85
+ check_admin_referer( $this->data['nonce_name'] );
86
+
87
+ $wpacuUpdate = new Update;
88
+ $wpacuUpdate->updateFrontPage( $wpacuNoLoadAssets );
89
+ }
90
+ }
91
+ }
92
+
93
+ /**
94
+ *
95
+ */
96
+ public function page()
97
+ {
98
+ Main::instance()->parseTemplate('admin-page-assets-manager', $this->data, true);
99
+ }
100
+ }
classes/BulkUnloads.php CHANGED
@@ -28,13 +28,8 @@ class BulkUnloads
28
*/
29
public function __construct()
30
{
31
- $this->wpacuFor = isset($_REQUEST['wpacu_for'])
32
- ? $_REQUEST['wpacu_for']
33
- : $this->wpacuFor;
34
-
35
- $this->wpacuPostType = isset($_REQUEST['wpacu_post_type'])
36
- ? $_REQUEST['wpacu_post_type']
37
- : $this->wpacuPostType;
38
39
if (isset($_REQUEST['wpacu_update']) && $_REQUEST['wpacu_update'] == 1) {
40
$this->update();
@@ -54,6 +49,14 @@ class BulkUnloads
54
$values = Main::instance()->getBulkUnload('post_type', $this->wpacuPostType);
55
}
56
57
return $values;
58
}
59
@@ -77,7 +80,7 @@ class BulkUnloads
77
$this->data['nonce_name'] = Update::NONCE_FIELD_NAME;
78
$this->data['nonce_action'] = Update::NONCE_ACTION_NAME;
79
80
- Main::instance()->parseTemplate('admin-page-settings-bulk-unloads', $this->data, true);
81
}
82
83
/**
@@ -101,13 +104,21 @@ class BulkUnloads
101
*/
102
public function update()
103
{
104
$wpacuUpdate = new Update;
105
106
if ($this->wpacuFor === 'everywhere') {
107
$removed = $wpacuUpdate->removeEverywhereUnloads(array(), array(), 'post');
108
109
if ($removed) {
110
- add_action('admin_notices', array($this, 'noticeGlobalsRemoved'));
111
}
112
}
113
@@ -115,7 +126,7 @@ class BulkUnloads
115
$removed = $wpacuUpdate->removeBulkUnloads($this->wpacuPostType);
116
117
if ($removed) {
118
- add_action('admin_notices', array($this, 'noticePostTypesRemoved'));
119
}
120
}
121
}
@@ -126,8 +137,8 @@ class BulkUnloads
126
public function noticeGlobalsRemoved()
127
{
128
?>
129
- <div class="updated notice is-dismissible">
130
- <p>The selected styles/scripts were removed from the global unload list and they will now load in the pages/posts,
131
unless you have other rules that would prevent them from loading.</p>
132
</div>
133
<?php
@@ -139,8 +150,8 @@ class BulkUnloads
139
public function noticePostTypesRemoved()
140
{
141
?>
142
- <div class="updated notice is-dismissible">
143
- <p>The selected styles/scripts were removed from the unload list for <strong><u><?php echo $this->wpacuPostType; ?></u></strong>
144
post type and they will now load in the pages/posts, unless you have other rules that would prevent them from loading.</p>
145
</div>
146
<?php
28
*/
29
public function __construct()
30
{
31
+ $this->wpacuFor = Misc::getVar('request', 'wpacu_for', $this->wpacuFor);
32
+ $this->wpacuPostType = Misc::getVar('request', 'wpacu_post_type', $this->wpacuPostType);
33
34
if (isset($_REQUEST['wpacu_update']) && $_REQUEST['wpacu_update'] == 1) {
35
$this->update();
49
$values = Main::instance()->getBulkUnload('post_type', $this->wpacuPostType);
50
}
51
52
+ if (isset($values['styles']) && ! empty($values['styles'])) {
53
+ sort($values['styles']);
54
+ }
55
+
56
+ if (isset($values['scripts']) && ! empty($values['scripts'])) {
57
+ sort($values['scripts']);
58
+ }
59
+
60
return $values;
61
}
62
80
$this->data['nonce_name'] = Update::NONCE_FIELD_NAME;
81
$this->data['nonce_action'] = Update::NONCE_ACTION_NAME;
82
83
+ Main::instance()->parseTemplate('admin-page-settings-bulk-changes', $this->data, true);
84
}
85
86
/**
104
*/
105
public function update()
106
{
107
+ $wpacuIsValidPostRequest = (isset($_POST['wpacu_bulk_unloads_nonce']) && $_POST['wpacu_bulk_unloads_nonce']);
108
+
109
+ if (! $wpacuIsValidPostRequest) {
110
+ return;
111
+ }
112
+
113
+ check_admin_referer('wpacu_bulk_unloads_update', 'wpacu_bulk_unloads_nonce');
114
+
115
$wpacuUpdate = new Update;
116
117
if ($this->wpacuFor === 'everywhere') {
118
$removed = $wpacuUpdate->removeEverywhereUnloads(array(), array(), 'post');
119
120
if ($removed) {
121
+ add_action('wpacu_admin_notices', array($this, 'noticeGlobalsRemoved'));
122
}
123
}
124
126
$removed = $wpacuUpdate->removeBulkUnloads($this->wpacuPostType);
127
128
if ($removed) {
129
+ add_action('wpacu_admin_notices', array($this, 'noticePostTypesRemoved'));
130
}
131
}
132
}
137
public function noticeGlobalsRemoved()
138
{
139
?>
140
+ <div class="updated notice wpacu-notice is-dismissible">
141
+ <p><span class="dashicons dashicons-yes"></span> The selected styles/scripts were removed from the global unload list and they will now load in the pages/posts,
142
unless you have other rules that would prevent them from loading.</p>
143
</div>
144
<?php
150
public function noticePostTypesRemoved()
151
{
152
?>
153
+ <div class="updated notice wpacu-notice is-dismissible">
154
+ <p><span class="dashicons dashicons-yes"></span> The selected styles/scripts were removed from the unload list for <strong><u><?php echo $this->wpacuPostType; ?></u></strong>
155
post type and they will now load in the pages/posts, unless you have other rules that would prevent them from loading.</p>
156
</div>
157
<?php
classes/CleanUp.php ADDED
@@ -0,0 +1,339 @@
1
+ <?php
2
+ namespace WpAssetCleanUp;
3
+
4
+ /**
5
+ * Class CleanUp
6
+ * @package WpAssetCleanUp
7
+ */
8
+ class CleanUp
9
+ {
10
+ /**
11
+ *
12
+ */
13
+ public function init()
14
+ {
15
+ // Is "Test Mode" is enabled and the page is viewed by a regular visitor (not administrator with plugin activation privileges)?
16
+ // Stop here as the script will NOT PREVENT any of the elements below to load
17
+ // They will load as they used to for the regular visitor while the admin debugs the website
18
+ add_action('init', function() {
19
+ if ( Main::instance()->preventUnloadAssets() ) {
20
+ return;
21
+ }
22
+
23
+ CleanUp::doClean();
24
+ }, 12);
25
+ }
26
+
27
+ /**
28
+ *
29
+ */
30
+ public function doClean()
31
+ {
32
+ $settings = Main::instance()->settings;
33
+
34
+ // Remove "Really Simple Discovery (RSD)" link?
35
+ if ($settings['remove_rsd_link'] == 1) {
36
+ // <link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://yourwebsite.com/xmlrpc.php?rsd" />
37
+ remove_action('wp_head', 'rsd_link');
38
+ }
39
+
40
+ // Remove "Windows Live Writer" link?
41
+ if ($settings['remove_wlw_link'] == 1) {
42
+ // <link rel="wlwmanifest" type="application/wlwmanifest+xml" href="http://yourwebsite.com/wp-includes/wlwmanifest.xml">
43
+ remove_action('wp_head', 'wlwmanifest_link');
44
+ }
45
+
46
+ // Remove "REST API" link?
47
+ if ($settings['remove_rest_api_link'] == 1) {
48
+ // <link rel='https://api.w.org/' href='https://yourwebsite.com/wp-json/' />
49
+ remove_action('wp_head', 'rest_output_link_wp_head');
50
+ }
51
+
52
+ // Remove "Shortlink"?
53
+ if ($settings['remove_shortlink'] == 1) {
54
+ // <link rel='shortlink' href="https://yourdomain.com/?p=1">
55
+ remove_action('wp_head', 'wp_shortlink_wp_head');
56
+ }
57
+
58
+ // Remove "Post's Relational Links"?
59
+ if ($settings['remove_posts_rel_links'] == 1) {
60
+ // <link rel='prev' title='Title of adjacent post' href='https://yourdomain.com/adjacent-post-slug-here/' />
61
+ remove_action('wp_head', 'adjacent_posts_rel_link_wp_head');
62
+ }
63
+
64
+ // Remove "WordPress version" tag?
65
+ if ($settings['remove_wp_version']) {
66
+ // <meta name="generator" content="WordPress 4.9.8" />
67
+ remove_action('wp_head', 'wp_generator');
68
+
69
+ // also hide it from RSS
70
+ add_filter('the_generator', '__return_false');
71
+ }
72
+
73
+ // Remove Main RSS Feed Link?
74
+ if ($settings['remove_main_feed_link']) {
75
+ add_filter('feed_links_show_posts_feed', '__return_false');
76
+ remove_action('wp_head', 'feed_links_extra', 3);
77
+ }
78
+
79
+ // Remove Comment RSS Feed Link?
80
+ if ($settings['remove_comment_feed_link']) {
81
+ add_filter('feed_links_show_comments_feed', '__return_false');
82
+ }
83
+
84
+ // Remove "WordPress version" and all other "generator" meta tags?
85
+ if ($settings['remove_generator_tag']) {
86
+ add_action('wp_loaded', function () {
87
+ ob_start(function ($htmlSource) {
88
+ return self::removeMetaGenerators($htmlSource);
89
+ });
90
+ }, PHP_INT_MAX);
91
+ }
92
+
93
+ if ($settings['remove_html_comments']) {
94
+ add_action('wp_loaded', function () {
95
+ ob_start(function ($htmlSource) {
96
+ return self::removeHtmlComments($htmlSource);
97
+ });
98
+ }, PHP_INT_MAX);
99
+ }
100
+
101
+ // Disable XML-RPC protocol support (partially or completely)
102
+ if (in_array($settings['disable_xmlrpc'], array('disable_all', 'disable_pingback'))) {
103
+ // Partially or Completely Options / Pingback will be disabled
104
+ $this->disableXmlRpcPingback();
105
+
106
+ // Complete disable the service
107
+ if ($settings['disable_xmlrpc'] === 'disable_all') {
108
+ add_filter('xmlrpc_enabled', '__return_false');
109
+ }
110
+
111
+ // Also clean it up from the <head>
112
+ add_action('wp_loaded', function() {
113
+ ob_start(function ($htmlSource) {
114
+ $pingBackUrl = get_bloginfo('pingback_url');
115
+
116
+ $matchRegExps = array(
117
+ '#<link rel=("|\')pingback("|\') href=("|\')'.$pingBackUrl.'("|\')( /|)>#',
118
+ '#<link href=("|\')'.$pingBackUrl.'("|\') rel=("|\')pingback("|\')( /|)>#'
119
+ );
120
+
121
+ foreach ($matchRegExps as $matchRegExp) {
122
+ $htmlSource = preg_replace($matchRegExp, '', $htmlSource);
123
+ }
124
+
125
+ return $htmlSource;
126
+ });
127
+ });
128
+ }
129
+ }
130
+
131
+ /**
132
+ *
133
+ */
134
+ public function disableXmlRpcPingback()
135
+ {
136
+ // Disable Pingback method
137
+ add_filter('xmlrpc_methods', function ($methods) {
138
+ unset($methods['pingback.ping'], $methods['pingback.extensions.getPingbacks']);
139
+ return $methods;
140
+ } );
141
+
142
+ // Remove X-Pingback HTTP header
143
+ add_filter('wp_headers', function ($headers) {
144
+ unset($headers['X-Pingback']);
145
+ return $headers;
146
+ });
147
+ }
148
+
149
+ /**
150
+ * @param $htmlSource
151
+ *
152
+ * @return mixed
153
+ */
154
+ public static function removeMetaGenerators($htmlSource)
155
+ {
156
+ if (stripos($htmlSource, '<meta') === false) {
157
+ return $htmlSource;
158
+ }
159
+
160
+ // Use DOMDocument to alter the HTML Source and Remove the tags
161
+ $htmlSourceOriginal = $htmlSource;
162
+
163
+ if (function_exists('libxml_use_internal_errors')
164
+ && function_exists('libxml_clear_errors')
165
+ && class_exists('DOMDocument'))
166
+ {
167
+ $document = new \DOMDocument();
168
+ libxml_use_internal_errors(true);
169
+
170
+ $document->loadHTML($htmlSource);
171
+
172
+ $domUpdated = false;
173
+
174
+ foreach ($document->getElementsByTagName('meta') as $tagObject) {
175
+ $nameAttrValue = $tagObject->getAttribute('name');
176
+
177
+ if ($nameAttrValue === 'generator') {
178
+ $outerTag = $outerTagRegExp = trim(self::getOuterHTML($tagObject));
179
+ $last2Chars = substr($outerTag, -2);
180
+
181
+ if ($last2Chars === '">' || $last2Chars === "'>") {
182
+ $tagWithoutLastChar = substr($outerTag, 0, -1);
183
+ $outerTagRegExp = $tagWithoutLastChar.'(.*?)>';
184
+ }
185
+
186
+ if (strpos($outerTagRegExp, '<meta') !== false) {
187
+ preg_match_all('#' . $outerTagRegExp . '#si', $htmlSource, $matches);
188
+
189
+ if (isset($matches[0][0]) && ! empty($matches[0][0]) && strip_tags($matches[0][0]) === '') {
190
+ $htmlSource = str_replace( $matches[0][0], '', $htmlSource );
191
+ }
192
+
193
+ if ($htmlSource !== $htmlSourceOriginal) {
194
+ $domUpdated = true;
195
+ }
196
+ }
197
+ }
198
+ }
199
+
200
+ libxml_clear_errors();
201
+
202
+ if ($domUpdated) {
203
+ return $htmlSource;
204
+ }
205
+ }
206
+
207
+ // DOMDocument is not enabled. Use the RegExp instead (not as smooth, but does its job)!
208
+ preg_match_all('#<meta(.*?)>#si', $htmlSource, $matches);
209
+
210
+ if (isset($matches[0]) && ! empty($matches[0])) {
211
+ foreach ($matches[0] as $metaTag) {
212
+ if (strip_tags($metaTag) === ''
213
+ && (stripos($metaTag, 'name="generator"') !== false || stripos($metaTag, 'name=\'generator\'') !== false)
214
+ ) {
215
+ $htmlSource = str_replace($metaTag, '', $htmlSource);
216
+ }
217
+ }
218
+ }
219
+
220
+ return $htmlSource;
221
+ }
222
+
223
+ /**
224
+ * @param $htmlSource
225
+ *
226
+ * @return mixed
227
+ */
228
+ public static function removeHtmlComments($htmlSource)
229
+ {
230
+ // No comments? Do not continue
231
+ if (strpos($htmlSource, '<!--') === false) {
232
+ return $htmlSource;
233
+ }
234
+
235
+ if (! (function_exists('libxml_use_internal_errors')
236
+ && function_exists('libxml_clear_errors')
237
+ && class_exists('DOMDocument')))
238
+ {
239
+ return $htmlSource;
240
+ }
241
+
242
+ $domComments = new \DOMDocument();
243
+ libxml_use_internal_errors(true);
244
+
245
+ $domComments->loadHTML($htmlSource);
246
+
247
+ $xpathComments = new \DOMXPath($domComments);
248
+ $comments = $xpathComments->query('//comment()');
249
+
250
+ libxml_clear_errors();
251
+
252
+ if ($comments === null) {
253
+ return $htmlSource;
254
+ }
255
+
256
+ preg_match_all('#<!--(.*?)-->#s', $htmlSource, $matchesRegExpComments);
257
+
258
+ // "comments" within tag attributes or script tags?
259
+ // e.g. <script>var type='<!-- A comment here -->';</script>
260
+ // e.g. <div data-info="This is just a <!-- comment --> text">Content here</div>
261
+ $commentsWithinQuotes = array();
262
+
263
+ if (isset($matchesRegExpComments[1]) && count($matchesRegExpComments[1]) !== count($comments)) {
264
+ preg_match_all('#=(|\s+)(\'|")(|\s+)<!--(.*?)-->(|\s+)(\'|")#s', $htmlSource, $matchesCommentsWithinQuotes);
265
+
266
+ if (isset($matchesCommentsWithinQuotes[0]) && ! empty($matchesCommentsWithinQuotes[0])) {
267
+ foreach ($matchesCommentsWithinQuotes[0] as $matchedDataOriginal) {
268
+ $matchedDataUpdated = str_replace(
269
+ array('', '<!--', '-->'),
270
+ array('--wpacu-space-del--', '--wpacu-start-comm--', '--wpacu-end-comm--'),
271
+ $matchedDataOriginal
272
+ );
273
+
274
+ $htmlSource = str_replace($matchedDataOriginal, $matchedDataUpdated, $htmlSource);
275
+
276
+ $commentsWithinQuotes[] = array(
277
+ 'original' => $matchedDataOriginal,
278
+ 'updated' => $matchedDataUpdated
279
+ );
280
+ }
281
+ }
282
+ }
283
+
284
+ foreach ($comments as $comment) {
285
+ $entireComment = self::getOuterHTML($comment);
286
+
287
+ // Do not strip MSIE conditional comments
288
+ if (preg_match('#<!--\[if(.*?)\[endif\]-->#si', $entireComment)) {
289
+ continue;
290
+ }
291
+
292
+ // Any exceptions set in "Strip HTML comments?" textarea?
293
+ if (Main::instance()->settings['remove_html_comments_exceptions']) {
294
+ $removeHtmlCommentsExceptions = trim(Main::instance()->settings['remove_html_comments_exceptions']);
295
+
296
+ if (strpos($removeHtmlCommentsExceptions, "\n") !== false) {
297
+ foreach (explode("\n", $removeHtmlCommentsExceptions) as $removeCommExceptionPattern) {
298
+ $removeCommExceptionPattern = trim($removeCommExceptionPattern);
299
+ if (stripos($entireComment, $removeCommExceptionPattern) !== false) {
300
+ continue 2;
301
+ }
302
+ }
303
+ } elseif (stripos($entireComment, $removeHtmlCommentsExceptions) !== false) {
304
+ continue;
305
+ }
306
+ }
307
+
308
+ $htmlSource = str_replace(
309
+ array(
310
+ $entireComment,
311
+ '<!--' . $comment->nodeValue . '-->'
312
+ ),
313
+ '',
314
+ $htmlSource
315
+ );
316
+ }
317
+
318
+ if (! empty($commentsWithinQuotes)) {
319
+ foreach ($commentsWithinQuotes as $commentQuote) {
320
+ $htmlSource = str_replace($commentQuote['updated'], $commentQuote['original'], $htmlSource);
321
+ }
322
+ }
323
+
324
+ return $htmlSource;
325
+ }
326
+
327
+ /**
328
+ * @param $e
329
+ *
330
+ * @return mixed
331
+ */
332
+ public static function getOuterHTML($e)
333
+ {
334
+ $doc = new \DOMDocument();
335
+ $doc->appendChild($doc->importNode($e, true));
336
+
337
+ return trim($doc->saveHTML());
338
+ }
339
+ }
classes/HomePage.php DELETED
@@ -1,78 +0,0 @@
1
- <?php
2
- namespace WpAssetCleanUp;
3
-
4
- /**
5
- * Class HomePage
6
- * @package WpAssetCleanUp
7
- */
8
- class HomePage
9
- {
10
- /**
11
- * @var array
12
- */
13
- public $data = array();
14
-
15
- /**
16
- * Settings constructor.
17
- */
18
- public function __construct()
19
- {
20
- $this->data['nonce_name'] = WPACU_PLUGIN_NAME.'_settings';
21
- $this->data['show_on_front'] = Misc::getShowOnFront();
22
-
23
- $isHomePageEdit = (isset($_GET['page']) && $_GET['page'] == WPACU_PLUGIN_NAME.'_home_page');
24
-
25
- // Only continue if we are on the plugin's homepage edit mode
26
- if (! $isHomePageEdit) {
27
- return;
28
- }
29
-
30
- if ($this->data['show_on_front'] === 'page') {
31
- // Front page displays: A Static Page
32
- $this->data['page_on_front'] = get_option('page_on_front');
33
-
34
- if ($this->data['page_on_front']) {
35
- $this->data['page_on_front_title'] = get_the_title($this->data['page_on_front']);
36
- }
37
-
38
- $this->data['page_for_posts'] = get_option('page_for_posts');
39
-
40
- if ($this->data['page_for_posts']) {
41
- $this->data['page_for_posts_title'] = get_the_title($this->data['page_for_posts']);
42
- }
43
- } else {
44
- // Your latest posts
45
- $postUrl = get_site_url();
46
-
47
- if (substr($postUrl, -1) != '/') {
48
- $postUrl .= '/';
49
- }
50
-
51
- $this->data['site_url'] = $postUrl;
52
- }
53
- }
54
-
55
- /**
56
- *
57
- */
58
- public function page()
59
- {
60
- $wpacuNoLoadAssets = isset($_POST[WPACU_PLUGIN_NAME])
61
- ? $_POST[WPACU_PLUGIN_NAME] : array();
62
-
63
- $noncePost = isset($_POST[$this->data['nonce_name']])
64
- ? $_POST[$this->data['nonce_name']] : '';
65
-
66
- if (is_array($wpacuNoLoadAssets) && wp_verify_nonce($noncePost, $this->data['nonce_name'])) {
67
- $wpacuUpdate = new Update;
68
- $wpacuUpdate->updateFrontPage($wpacuNoLoadAssets);
69
- }
70
-
71
- $this->data['nonce_value'] = wp_create_nonce($this->data['nonce_name']);
72
-
73
- $wpacuSettings = new Settings;
74
- $this->data['wpacu_settings'] = $wpacuSettings->getAll();
75
-
76
- Main::instance()->parseTemplate('admin-page-settings-homepage', $this->data, true);
77
- }
78
- }
classes/Info.php CHANGED
@@ -2,11 +2,28 @@
2
namespace WpAssetCleanUp;
3
4
/**
5
* Class Info
6
* @package WpAssetCleanUp
7
*/
8
class Info
9
{
10
/**
11
*
12
*/
@@ -30,4 +47,60 @@ class Info
30
{
31
Main::instance()->parseTemplate('admin-page-license', array(), true);
32
}
33
}
2
namespace WpAssetCleanUp;
3
4
/**
5
+ * Gets information pages such as "Getting Started", "Help" and "Info"
6
+ * Retrieves specific information about a plugin or a theme
7
+ *
8
* Class Info
9
* @package WpAssetCleanUp
10
*/
11
class Info
12
{
13
+ /**
14
+ *
15
+ */
16
+ public function gettingStarted()
17
+ {
18
+ $data = array('for' => 'how-it-works');
19
+
20
+ if (array_key_exists('wpacu_for', $_GET)) {
21
+ $data['for'] = sanitize_text_field($_GET['wpacu_for']);
22
+ }
23
+
24
+ Main::instance()->parseTemplate('admin-page-getting-started', $data, true);
25
+ }
26
+
27
/**
28
*
29
*/
47
{
48
Main::instance()->parseTemplate('admin-page-license', array(), true);
49
}
50
+
51
+ /**
52
+ * @param $locationChild
53
+ * @param $allPlugins
54
+ * @param $allActivePluginsIcons
55
+ *
56
+ * @return string
57
+ */
58
+ public static function getPluginInfo($locationChild, $allPlugins, $allActivePluginsIcons)
59
+ {
60
+ foreach (array_keys($allPlugins) as $pluginFile) {
61
+ if (strpos($pluginFile, $locationChild.'/') === 0) {
62
+ $imageIconStyle = $classIconStyle = '';
63
+
64
+ if (isset($allActivePluginsIcons[$locationChild]) && $allActivePluginsIcons[$locationChild]) {
65
+ $classIconStyle = 'has-icon';
66
+ $imageIconStyle = 'style="background: transparent url(\''.$allActivePluginsIcons[$locationChild].'\') no-repeat 0 0; background-size: cover;"';
67
+ }
68
+
69
+ return '<div class="icon-plugin-default '.$classIconStyle.'"><div class="icon-area" '.$imageIconStyle.'></div></div> &nbsp; <span class="wpacu-child-location-name">'.$allPlugins[$pluginFile]['Name'].'</span>' . ' <span class="wpacu-child-location-version">v'.$allPlugins[$pluginFile]['Version'].'</span>';
70
+ }
71
+ }
72
+
73
+ return $locationChild;
74
+ }
75
+
76
+ /**
77
+ * @param $locationChild
78
+ * @param $allThemes
79
+ *
80
+ * @return array
81
+ */
82
+ public static function getThemeInfo($locationChild, $allThemes)
83
+ {
84
+ foreach (array_keys($allThemes) as $themeDir) {
85
+ if ($locationChild === $themeDir) {
86
+ $themeInfo = wp_get_theme($themeDir);
87
+ $themeIconUrl = Misc::getThemeIcon($themeInfo->get('Name'));
88
+
89
+ $themeIconHtml = '';
90
+ $hasIcon = false;
91
+
92
+ if ($themeIconUrl) {
93
+ $hasIcon = true;
94
+ $imageIconStyle = 'style="background: transparent url(\''.$themeIconUrl.'\') no-repeat 0 0; background-size: cover;"';
95
+ $themeIconHtml = '<div class="icon-theme has-icon"><div class="icon-area" '.$imageIconStyle.'></div></div>';
96
+ }
97
+
98
+ $output = $themeIconHtml . $themeInfo->get('Name') . ' <span class="wpacu-child-location-version">v'.$themeInfo->get('Version').'</span>';
99
+
100
+ return array('has_icon' => $hasIcon, 'output' => $output);
101
+ }
102
+ }
103
+
104
+ return array('has_icon' => false, 'output' => $locationChild);
105
+ }
106
}
classes/Main.php CHANGED
@@ -51,11 +51,6 @@ class Main
51
public $isUpdateable = true;
52
// [/wpacu_lite]
53
54
- /**
55
- * @var bool
56
- */
57
- public $isWooCommerceShopPage = false;
58
-
59
/**
60
* @var int
61
*/
@@ -69,32 +64,26 @@ class Main
69
/**
70
* @var array
71
*/
72
- public $vars = array();
73
-
74
- /**
75
- * @var bool|mixed|void
76
- */
77
- public $frontendShow = false;
78
-
79
- /**
80
- * @var bool
81
- */
82
- public $dashboardShow = false;
83
84
/**
85
* @var bool
86
*/
87
- public $isFrontendView = false;
88
89
/**
90
- * @var bool|mixed
91
*/
92
- public $disableEmojis = false;
93
94
/**
95
* @var array
96
*/
97
- public $assetsInFooter = array();
98
99
/**
100
* @var array
@@ -131,17 +120,24 @@ class Main
131
*/
132
public $isAjaxCall = false;
133
134
/**
135
* @var Main|null
136
*/
137
- private static $singleton = null;
138
139
/**
140
* @return null|Main
141
*/
142
public static function instance()
143
{
144
- if (is_null(self::$singleton)) {
145
self::$singleton = new self();
146
}
147
@@ -153,18 +149,22 @@ class Main
153
*/
154
public function __construct()
155
{
156
- $wpacuSettingsClass = new Settings();
157
- $this->settings = $wpacuSettingsClass->getAll();
158
-
159
- $this->frontendShow = $this->settings['frontend_show'];
160
- $this->dashboardShow = $this->settings['dashboard_show'];
161
- $this->disableEmojis = $this->settings['disable_emojis'];
162
-
163
- if ($this->dashboardShow && $this->settings['dom_get_type'] != '') {
164
- self::$domGetType = $this->settings['dom_get_type'];
165
- }
166
-
167
- if (array_key_exists(WPACU_PLUGIN_NAME.'_load', $_REQUEST)) {
168
add_filter('w3tc_minify_enable', '__return_false');
169
}
170
@@ -180,47 +180,97 @@ class Main
180
Misc::noAdminBarLoad();
181
}
182
183
// Fetch the page in the background to see what scripts/styles are already loading
184
- if (isset($_REQUEST[WPACU_PLUGIN_NAME.'_load']) || $this->frontendShow) {
185
- if (isset($_REQUEST[WPACU_PLUGIN_NAME.'_load'])) {
186
- Misc::noAdminBarLoad();
187
- }
188
189
- add_action('wp_head', array($this, 'saveFooterAssets'), 100000000);
190
- add_action('wp_footer', array($this, 'printScriptsStyles'), PHP_INT_MAX);
191
- }
192
193
- // Front-end View - Unload the assets
194
- if (! isset($_REQUEST[WPACU_PLUGIN_NAME.'_load'])) {
195
- // Unload Styles - HEAD
196
- add_action('wp_print_styles', array($this, 'filterStyles'), 100000);
197
-
198
- // Unload Scripts - HEAD
199
- add_action('wp_print_scripts', array($this, 'filterScripts'), 100000);
200
-
201
- // Unload Scripts & Styles - FOOTER
202
- // Needs to be triggered very soon as some old plugins/themes use wp_footer() to enqueue scripts
203
- // Sometimes styles are loaded in the BODY section of the page
204
- add_action('wp_print_footer_scripts', array($this, 'filterScripts'), 1);
205
- add_action('wp_print_footer_scripts', array($this, 'filterStyles'), 1);
206
- }
207
208
- // Do not load the meta box nor do any AJAX calls
209
- // if the asset management is not enabled for the Dashboard
210
- if ($this->settings['dashboard_show'] == 1) {
211
- // Send an AJAX request to get the list of loaded scripts and styles and print it nicely
212
- add_action(
213
- 'wp_ajax_'. WPACU_PLUGIN_NAME . '_get_loaded_assets',
214
- array($this, 'ajaxGetJsonListCallback')
215
- );
216
217
- add_action('add_meta_boxes', array($this, 'addMetaBox'));
218
- }
219
220
- if ($this->disableEmojis == 1) {
221
- add_action('init', array($this, 'doDisableEmojis'));
222
- add_filter('emoji_svg_url', '__return_false');
223
- }
224
}
225
226
/**
@@ -228,12 +278,14 @@ class Main
228
*/
229
public function setVarsBeforeUpdate()
230
{
231
- $this->isFrontendView = ($this->frontendShow && current_user_can('manage_options')
232
- && !isset($_REQUEST[WPACU_PLUGIN_NAME.'_load'])
233
- && !is_admin());
234
235
// it will update $this->isUpdateable;
236
$this->getCurrentPostId();
237
}
238
239
/**
@@ -241,7 +293,7 @@ class Main
241
*/
242
public function setVarsAfterAnyUpdate()
243
{
244
- if (! isset($_REQUEST[WPACU_PLUGIN_NAME.'_load']) && ! is_admin()) {
245
$this->globalUnloaded = $this->getGlobalUnload();
246
247
// [wpacu_lite]
@@ -258,10 +310,9 @@ class Main
258
$type = 'post';
259
$post = $getCurrentPost;
260
$this->postTypesUnloaded = $this->getBulkUnload('post_type', $post->post_type);
261
- } elseif ($this->wpacuProEnabled()) {
262
- $type = 'for_pro';
263
- // $this->currentPostId should be 0 in this case
264
- } else {
265
// The request is done for a page such as is_archive(), is_author(), 404, search
266
// and the premium extension is not available, thus no load exceptions are available
267
return;
@@ -271,58 +322,6 @@ class Main
271
}
272
}
273
274
- /**
275
- * @param $postType
276
- */
277
- public function addMetaBox($postType)
278
- {
279
- $obj = get_post_type_object($postType);
280
-
281
- if (isset($obj->public) && $obj->public > 0) {
282
- add_meta_box(
283
- WPACU_PLUGIN_NAME.'_asset_list',
284
- __('Asset CleanUp', WPACU_PLUGIN_NAME),
285
- array($this, 'renderMetaBoxContent'),
286
- $postType,
287
- 'advanced',
288
- 'high'
289
- );
290
- }
291
- }
292
-
293
- /**
294
- * This is triggered only in the Edit Mode Dashboard View
295
- */
296
- public function renderMetaBoxContent()
297
- {
298
- global $post;
299
-
300
- if (! isset($post->ID)) {
301
- return;
302
- }
303
-
304
- $postId = $post->ID;
305
-
306
- $getAssets = true;
307
-
308
- if (get_post_status($postId) != 'publish') {
309
- $getAssets = false;
310
- }
311
-
312
- if ($getAssets) {
313
- // Add an nonce field so we can check for it later.
314
- wp_nonce_field(WPACU_PLUGIN_NAME . '_meta_box', WPACU_PLUGIN_NAME . '_nonce');
315
- }
316
-
317
- $data = array();
318
-
319
- $data['get_assets'] = $getAssets;
320
-
321
- $data['fetch_url'] = Misc::getPageUrl($postId);
322
-
323
- $this->parseTemplate('meta-box', $data, true);
324
- }
325
-
326
/**
327
* See if there is any list with scripts to be removed in JSON format
328
* Only the handles (the ID of the scripts) are saved
@@ -342,7 +341,7 @@ class Main
342
$globalUnload = $this->globalUnloaded;
343
344
// [wpacu_lite]
345
- if (! empty($globalUnload['scripts']) && $nonAssetConfigPage) {
346
$list = $globalUnload['scripts'];
347
} else { // [/wpacu_lite]
348
// Post, Page or Front-page?
@@ -376,13 +375,11 @@ class Main
376
}
377
}
378
}
379
-
380
- $list = array_unique($list);
381
// [wpacu_lite]
382
}
383
// [/wpacu_lite]
384
385
- $list = apply_filters('wpacu_filter_scripts', $list);
386
387
// Let's see if there are load exceptions for this page
388
if (! empty($list) && ! empty($this->loadExceptions['scripts'])) {
@@ -397,7 +394,7 @@ class Main
397
398
$allScripts = $wp_scripts;
399
400
- if (isset($allScripts->registered) && ! empty($allScripts->registered)) {
401
$i = $this->lastScriptPos;
402
403
foreach ($allScripts->registered as $handle => $value) {
@@ -424,6 +421,11 @@ class Main
424
return;
425
}
426
427
foreach ($list as $handle) {
428
$handle = trim($handle);
429
@@ -462,10 +464,11 @@ class Main
462
$globalUnload = $this->globalUnloaded;
463
464
// [wpacu_lite]
465
- if (! empty($globalUnload['styles']) && $nonAssetConfigPage) {
466
$list = $globalUnload['styles'];
467
} else { // [/wpacu_lite]
468
- // Post, Page, Front-page and more (if the Premium Extension is activated)
469
$toRemove = $this->getAssetsUnloaded();
470
471
$jsonList = @json_decode($toRemove);
@@ -496,15 +499,13 @@ class Main
496
}
497
}
498
}
499
-
500
- $list = array_unique($list);
501
// [wpacu_lite]
502
}
503
// [/wpacu_lite]
504
505
// Any bulk unloaded styles for 'category', 'post_tag' and more?
506
// If the premium extension is enabled, any of the unloaded CSS will be added to the list
507
- $list = apply_filters('wpacu_filter_styles', $list);
508
509
// Let's see if there are load exceptions for this page
510
if (! empty($list) && ! empty($this->loadExceptions['styles'])) {
@@ -515,11 +516,11 @@ class Main
515
}
516
}
517
518
- global $wp_styles;
519
520
$allStyles = $wp_styles;
521
522
- if (! empty($allStyles) && isset($allStyles->registered)) {
523
$i = $this->lastStylePos;
524
525
foreach ($allStyles->registered as $handle => $value) {
@@ -540,8 +541,17 @@ class Main
540
if (isset($this->wpAllStyles['queue']) && ! empty($this->wpAllStyles['queue'])) {
541
$this->wpAllStyles['queue'] = array_unique( $this->wpAllStyles['queue'] );
542
}
543
}
544
545
if (empty($list)) {
546
return;
547
}
@@ -563,7 +573,7 @@ class Main
563
{
564
$exceptionsListDefault = $exceptionsList = $this->loadExceptions;
565
566
- if ($type == 'post' && !$postId) {
567
// $postId needs to have a value if $type is a 'post' type
568
return $exceptionsListDefault;
569
}
@@ -576,47 +586,32 @@ class Main
576
// Default
577
$exceptionsListJson = '';
578
579
- $homepageClass = new HomePage;
580
581
// Post or Post of the Homepage (if chosen in the Dashboard)
582
- if ($type == 'post'
583
|| ($homepageClass->data['show_on_front'] === 'page' && $postId)
584
) {
585
$exceptionsListJson = get_post_meta(
586
- $postId, '_' . WPACU_PLUGIN_NAME . '_load_exceptions',
587
true
588
);
589
- } elseif ($type == 'front_page') {
590
// The home page could also be the list of the latest blog posts
591
$exceptionsListJson = get_option(
592
- WPACU_PLUGIN_NAME . '_front_page_load_exceptions'
593
);
594
- } elseif (Main::wpacuProEnabled() && $type == 'for_pro') {
595
- // [wpacu_pro]
596
- if (class_exists( '\\WpAssetCleanUpPro\\LoadExceptions' )) {
597
- $ExceptionsPro = new \WpAssetCleanUpPro\LoadExceptions();
598
- $exceptionsListJson = $ExceptionsPro->getLoadExceptions();
599
- }
600
- // [/wpacu_pro]
601
}
602
603
- if ($exceptionsListJson) {
604
$exceptionsList = json_decode($exceptionsListJson, true);
605
606
- if (json_last_error() != JSON_ERROR_NONE) {
607
$exceptionsList = $exceptionsListDefault;
608
}
609
}
610
611
- /*
612
- if (! empty($_POST)) {
613
- echo '<pre>';
614
- print_r( $exceptionsList );
615
- exit;
616
- }
617
- */
618
-
619
- return $exceptionsList;
620
}
621
622
/**
@@ -625,7 +620,7 @@ class Main
625
public function getGlobalUnload()
626
{
627
$existingListEmpty = array('styles' => array(), 'scripts' => array());
628
- $existingListJson = get_option(WPACU_PLUGIN_NAME.'_global_unload');
629
630
$existingListData = $this->existingList($existingListJson, $existingListEmpty);
631
@@ -642,7 +637,7 @@ class Main
642
{
643
$existingListEmpty = array('styles' => array(), 'scripts' => array());
644
645
- $existingListAllJson = get_option(WPACU_PLUGIN_NAME.'_bulk_unload');
646
647
if (! $existingListAllJson) {
648
return $existingListEmpty;
@@ -669,15 +664,37 @@ class Main
669
return $existingList;
670
}
671
672
/**
673
*
674
*/
675
- public function saveFooterAssets()
676
{
677
global $wp_scripts;
678
679
- $this->assetsInFooter = $wp_scripts->in_footer;
680
- }
681
682
/**
683
* This output will be extracted and the JSON will be processed
@@ -689,17 +706,21 @@ class Main
689
public function printScriptsStyles()
690
{
691
// Not for WordPress AJAX calls
692
- if ((self::$domGetType === 'direct' && defined('DOING_AJAX') && DOING_AJAX)) {
693
return;
694
}
695
696
- $isFrontEndView = $this->isFrontendView;
697
- $isDashboardView = (!$isFrontEndView && array_key_exists(WPACU_PLUGIN_NAME.'_load', $_REQUEST));
698
699
- if (!$isFrontEndView && !$isDashboardView) {
700
return;
701
}
702
703
// Prevent plugins from altering the DOM
704
add_filter('w3tc_minify_enable', '__return_false');
705
@@ -747,19 +768,15 @@ class Main
747
}
748
}
749
750
- // [wpacu_pro]
751
- $currentUnloadedAll = apply_filters('wpacu_pro_filter_all_bulk_unloads', $currentUnloadedAll);
752
- // [/wpacu_pro]
753
-
754
$manageStyles = $wp_styles->done;
755
$manageScripts = $wp_scripts->done;
756
757
- if ($isFrontEndView) {
758
- if (isset($this->wpAllStyles['queue']) && ! empty($this->wpAllStyles)) {
759
$manageStyles = $this->wpAllStyles['queue'];
760
}
761
762
- if (isset($this->wpAllScripts['queue']) && ! empty($this->wpAllScripts)) {
763
$manageScripts = $this->wpAllScripts['queue'];
764
}
765
@@ -805,24 +822,19 @@ class Main
805
*/
806
$stylesList = $wp_styles->registered;
807
808
- if ($isFrontEndView) {
809
$stylesList = $stylesBeforeUnload['registered'];
810
}
811
812
if (! empty($stylesList)) {
813
/* These styles below are used by this plugin (except admin-bar) and they should not show in the list
814
as they are loaded only when you (or other admin) manage the assets, never for your website visitors */
815
- $skipStyles = array(
816
- 'admin-bar',
817
- WPACU_PLUGIN_NAME . '-style'
818
- );
819
-
820
- if (is_admin_bar_showing()) {
821
- $skipStyles[] = 'dashicons';
822
- }
823
824
foreach ($manageStyles as $handle) {
825
- if (in_array($handle, $skipStyles) || (! isset($stylesList[$handle]))) {
826
continue;
827
}
828
@@ -838,7 +850,7 @@ class Main
838
}
839
840
// Append unloaded ones (if any)
841
- if (! empty($currentUnloadedAll['styles']) && !empty($stylesBeforeUnload)) {
842
foreach ($currentUnloadedAll['styles'] as $sbuHandle) {
843
if (! in_array($sbuHandle, $manageStyles)) {
844
// Could be an old style that is not loaded anymore
@@ -863,26 +875,19 @@ class Main
863
*/
864
$scriptsList = $wp_scripts->registered;
865
866
- if ($isFrontEndView) {
867
$scriptsList = $scriptsBeforeUnload['registered'];
868
}
869
870
if (! empty($scriptsList)) {
871
- /* These scripts below are used by this plugin (except admin-bar) and they should not show in the list
872
- as they are loaded only when you (or other admin) manage the assets, never for your website visitors */
873
- $skipScripts = array(
874
- 'admin-bar',
875
- WPACU_PLUGIN_NAME.'-script'
876
- );
877
-
878
foreach ($manageScripts as $handle) {
879
- if (in_array($handle, $skipScripts) || (! isset($scriptsList[$handle]))) {
880
continue;
881
}
882
883
- $wpacuPos = isset($scriptsBeforeUnload['registered'][$handle]->wpacu_pos)
884
- ? $scriptsBeforeUnload['registered'][$handle]->wpacu_pos
885
- : '';
886
887
if ($wpacuPos) {
888
$list['scripts'][$wpacuPos] = $scriptsList[$handle];
@@ -892,7 +897,7 @@ class Main
892
}
893
894
// Append unloaded ones (if any)
895
- if (! empty($currentUnloadedAll['scripts']) && !empty($scriptsBeforeUnload)) {
896
foreach ($currentUnloadedAll['scripts'] as $sbuHandle) {
897
if (! in_array($sbuHandle, $manageScripts)) {
898
// Could be an old script that is not loaded anymore
@@ -910,54 +915,68 @@ class Main
910
}
911
912
ksort($list['scripts']);
913
- }
914
915
// Front-end View while admin is logged in
916
- if ($isFrontEndView) {
917
$data = array(
918
- 'is_updateable' => true,
919
- 'post_type' => '',
920
- 'bulk_unloaded' => array('post_type' => array())
921
);
922
923
// [wpacu_lite]
924
if ($this->isUpdateable) {
925
// [/wpacu_lite]
926
$data['current'] = $currentUnloaded;
927
928
$data['all']['scripts'] = $list['scripts'];
929
- $data['all']['styles'] = $list['styles'];
930
931
- $this->fetchUrl = Misc::getPageUrl($this->getCurrentPostId());
932
933
- $data['fetch_url'] = $this->fetchUrl;
934
935
- $data['nonce_name'] = Update::NONCE_FIELD_NAME;
936
- $data['nonce_action'] = Update::NONCE_ACTION_NAME;
937
938
$data = $this->alterAssetObj($data);
939
940