Asset CleanUp: Page Speed Booster - Version 1.3.2.6

Version Description

  • Prevent plugin from triggering any of its settings when page builders (e.g. Divi, Elementor, Beaver Builder, Oxygen, etc.) are in edit mode for maximum compatibility
  • Compatibility with SG Optimizer plugin
  • Option to prevent plugin to trigger any of its settings & unload rules on request via "wpacu_no_load" query string
  • Do not minify CSS/JS from /wp-content/uploads/ (e.g. files belonging to Elementor or Oxygen page builder plugins)
  • Added more things to "System Info" including settings and browser information
  • Apply relative URLs for combined CSS/JS script/stylesheet tags, if URL opened is via SSL and the WordPress site URL starts with http://
  • Bug Fix: Clear CSS/JS cache was returning a blank white page
  • Bug Fix: Minify JS - Exceptions weren't applied
Download this release

Release Info

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

Code changes from version 1.3.2.5 to 1.3.2.6

Files changed (45) hide show
  1. assets/icons/icon-incognito.png +0 -0
  2. assets/style.min.css +1 -1
  3. classes/AdminBar.php +11 -11
  4. classes/BulkUnloads.php +14 -7
  5. classes/Main.php +65 -30
  6. classes/MetaBoxes.php +6 -1
  7. classes/Misc.php +119 -11
  8. classes/OptimiseAssets/MinifyCss.php +3 -4
  9. classes/OptimiseAssets/MinifyJs.php +3 -1
  10. classes/OptimiseAssets/OptimizeCss.php +4 -3
  11. classes/OptimiseAssets/OptimizeJs.php +13 -5
  12. classes/OwnAssets.php +1 -1
  13. classes/Plugin.php +11 -2
  14. classes/Settings.php +16 -7
  15. classes/Tools.php +62 -24
  16. classes/Update.php +23 -32
  17. early-triggers.php +25 -2
  18. readme.txt +11 -1
  19. templates/_admin-page-getting-started-areas/_benefits-fast-pages.php +14 -14
  20. templates/_admin-page-getting-started-areas/_how-it-works.php +16 -10
  21. templates/_admin-page-getting-started-areas/_lite-vs-pro.php +17 -17
  22. templates/_admin-page-getting-started-areas/_start-optimization.php +1 -1
  23. templates/_admin-page-settings-bulk-changes/_bulk-unloaded.php +18 -18
  24. templates/_admin-page-settings-plugin-areas/_combine-loaded-files.php +24 -24
  25. templates/_admin-page-settings-plugin-areas/_common-files-unload.php +11 -11
  26. templates/_admin-page-settings-plugin-areas/_minify-loaded-files.php +10 -10
  27. templates/_admin-page-settings-plugin-areas/_plugin-usage-settings.php +42 -39
  28. templates/_admin-page-settings-plugin-areas/_strip-the-fat.php +3 -3
  29. templates/_admin-page-settings-plugin-areas/_test-mode.php +14 -9
  30. templates/_top-area.php +26 -15
  31. templates/admin-page-assets-manager.php +2 -2
  32. templates/admin-page-child-pages-info.php +36 -33
  33. templates/admin-page-child-settings-homepage.php +1 -1
  34. templates/admin-page-get-help.php +6 -6
  35. templates/admin-page-getting-started.php +15 -6
  36. templates/admin-page-license.php +14 -3
  37. templates/admin-page-settings-plugin.php +1 -1
  38. templates/admin-page-tools.php +13 -13
  39. templates/meta-box-loaded-assets/_asset-script-single-row.php +17 -14
  40. templates/meta-box-loaded-assets/_asset-style-single-row.php +21 -16
  41. templates/meta-box-loaded-assets/view-by-location.php +10 -7
  42. templates/meta-box-loaded.php +9 -9
  43. templates/meta-box-side-page-options.php +5 -5
  44. templates/settings-frontend.php +14 -14
  45. wpacu.php +8 -4
assets/icons/icon-incognito.png ADDED
Binary file
assets/style.min.css CHANGED
@@ -1 +1 @@
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}
1
+ #wpacu-pages-info-area{width:98%}#wpacu-top-area{margin:15px 0;padding:0 10px}#wpacu-logo-wrap{width:auto;display:inline-block;position:relative}#wpacu-logo-wrap a{display:block}#wpacu-logo-wrap img{width:352px;height:79px}#wpacu-logo-wrap .wpacu-pro-sign{position:absolute;height:auto;font-family:FiraSans-Medium,proxima-nova-1,Montserrat,Helvetica,sans-serif;font-size:13px;font-weight:600;letter-spacing:1px;padding:5px 11px;border-radius:15px;right:-60px;top:30px;width:auto;display:inline-block;text-align:center}#wpacu-logo-wrap .wpacu-pro-sign.wpacu-lite{color:#74777b;background:rgba(40,44,42,.05)}#wpacu-logo-wrap .wpacu-pro-sign.wpacu-pro{color:#004567;background-color:rgba(40,44,42,.05)}#wpacu_meta_box_content .dashicons.dashicons-warning,.wpacu-tabs nav ul li span.license-status.inactive{color:#c00}.wpacu-tabs{position:relative;overflow:hidden;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 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_meta_box_content,.wpacu_widefat{width:99%}.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 .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,.wpacu_update_btn{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{width:auto!important;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_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;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;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;-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}.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;-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=reset].btn-block,.wpacu-btns input[type=button].btn-block,.wpacu-btns input[type=submit].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;text-decoration:none;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}.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;display:inline-block;color:inherit;text-decoration:none}.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;display:inline-block;font-style:normal;color:inherit;text-decoration:none}.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;min-width:52px;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 CHANGED
@@ -41,22 +41,22 @@ class AdminBar
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
@@ -70,7 +70,7 @@ class AdminBar
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 {
@@ -80,8 +80,8 @@ class AdminBar
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
}
@@ -91,7 +91,7 @@ class AdminBar
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
}
@@ -99,14 +99,14 @@ class AdminBar
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
));
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', WPACU_PLUGIN_TEXT_DOMAIN),
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', WPACU_PLUGIN_TEXT_DOMAIN),
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
70
$wp_admin_bar->add_menu(array(
71
'parent' => 'assetcleanup-parent',
72
'id' => 'assetcleanup-homepage',
73
+ 'title' => __('Manage Homepage Assets', WPACU_PLUGIN_TEXT_DOMAIN),
74
'href' => $homepageManageAssetsHref
75
));
76
} else {
80
$wp_admin_bar->add_menu( array(
81
'parent' => 'assetcleanup-parent',
82
'id' => 'assetcleanup-homepage',
83
+ 'title' => __('Manage Page Assets', WPACU_PLUGIN_TEXT_DOMAIN),
84
+ 'href' => admin_url('admin.php?page=' . WPACU_PLUGIN_ID . '_assets_manager&wpacu_for=homepage')
85
) );
86
}
87
}
91
$wp_admin_bar->add_menu(array(
92
'parent' => 'assetcleanup-parent',
93
'id' => 'assetcleanup-jump-to-assets-list',
94
+ 'title' => __('Manage Page Assets', WPACU_PLUGIN_TEXT_DOMAIN),
95
'href' => '#wpacu_wrap_assets'
96
));
97
}
99
$wp_admin_bar->add_menu(array(
100
'parent' => 'assetcleanup-parent',
101
'id' => 'assetcleanup-bulk-unloaded',
102
+ 'title' => __('Bulk Changes', WPACU_PLUGIN_TEXT_DOMAIN),
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', WPACU_PLUGIN_TEXT_DOMAIN),
110
'href' => 'https://wordpress.org/support/plugin/wp-asset-clean-up',
111
'meta' => array('target' => '_blank')
112
));
classes/BulkUnloads.php CHANGED
@@ -104,9 +104,7 @@ class BulkUnloads
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
@@ -138,8 +136,11 @@ class BulkUnloads
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
145
}
@@ -151,8 +152,14 @@ class BulkUnloads
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
158
}
104
*/
105
public function update()
106
{
107
+ if (! Misc::getVar('post', 'wpacu_bulk_unloads_nonce')) {
108
return;
109
}
110
136
{
137
?>
138
<div class="updated notice wpacu-notice is-dismissible">
139
+ <p><span class="dashicons dashicons-yes"></span>
140
+ <?php
141
+ _e('The selected styles/scripts were removed from the global unload list and they will now load in the pages/posts, unless you have other rules that would prevent them from loading.', WPACU_PLUGIN_TEXT_DOMAIN);
142
+ ?>
143
+ </p>
144
</div>
145
<?php
146
}
152
{
153
?>
154
<div class="updated notice wpacu-notice is-dismissible">
155
+ <p><span class="dashicons dashicons-yes"></span>
156
+ <?php
157
+ echo sprintf(
158
+ __('The selected styles/scripts were removed from the unload list for <strong><u>%s</u></strong> post type and they will now load in the pages/posts, unless you have other rules that would prevent them from loading.', WPACU_PLUGIN_TEXT_DOMAIN),
159
+ $this->wpacuPostType
160
+ );
161
+ ?>
162
+ </p>
163
</div>
164
<?php
165
}
classes/Main.php CHANGED
@@ -120,6 +120,13 @@ class Main
120
*/
121
public $isAjaxCall = false;
122
123
/**
124
* Populated in the Parser constructor
125
*
@@ -164,19 +171,22 @@ class Main
164
'query-monitor'
165
);
166
167
- if (array_key_exists(WPACU_LOAD_ASSETS_REQ_KEY, $_REQUEST)) {
168
- add_filter('w3tc_minify_enable', '__return_false');
169
- }
170
171
// Early Triggers
172
add_action('wp', array($this, 'setVarsBeforeUpdate'), 8);
173
add_action('wp', array($this, 'setVarsAfterAnyUpdate'), 10);
174
175
- $this->isAjaxCall = (! empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) === 'xmlhttprequest');
176
177
- // "Direct" AJAX call to the page (regular AJAX)
178
- // Do not print the admin bar as it's not relevant
179
- if ($this->isAjaxCall) {
180
Misc::noAdminBarLoad();
181
}
182
@@ -188,7 +198,12 @@ class Main
188
// If there are reasons to prevent the unloading in case 'test mode' is enabled,
189
// then the prevention will trigger within filterStyles() and filterScripts()
190
191
- if (! isset($_REQUEST[WPACU_LOAD_ASSETS_REQ_KEY])) { // AJAX call? Do not trigger the code below
192
// Unload Styles - HEAD
193
add_action( 'wp_print_styles', array( $this, 'filterStyles' ), 100000 );
194
@@ -225,11 +240,9 @@ class Main
225
self::$domGetType = $this->settings['dom_get_type'];
226
}
227
228
- $calledFromDashboard = isset($_REQUEST[WPACU_LOAD_ASSETS_REQ_KEY]);
229
-
230
// Fetch the page in the background to see what scripts/styles are already loading
231
- if ($calledFromDashboard || $this->frontendShow()) {
232
- if ($calledFromDashboard) {
233
Misc::noAdminBarLoad();
234
}
235
@@ -278,14 +291,22 @@ class Main
278
*/
279
public function setVarsBeforeUpdate()
280
{
281
- $this->isFrontendEditView = ( $this->frontendShow() && Menu::userCanManageAssets()
282
- && !isset($_REQUEST[WPACU_LOAD_ASSETS_REQ_KEY])
283
- && !is_admin());
284
285
- // it will update $this->isUpdateable;
286
$this->getCurrentPostId();
287
288
- define('WPACU_CURRENT_PAGE_ID', $this->getCurrentPostId());
289
}
290
291
/**
@@ -293,7 +314,7 @@ class Main
293
*/
294
public function setVarsAfterAnyUpdate()
295
{
296
- if ( ! isset($_REQUEST[WPACU_LOAD_ASSETS_REQ_KEY]) && ! is_admin()) {
297
$this->globalUnloaded = $this->getGlobalUnload();
298
299
// [wpacu_lite]
@@ -711,7 +732,7 @@ class Main
711
}
712
713
$isFrontEndEditView = $this->isFrontendEditView;
714
- $isDashboardEditView = (!$isFrontEndEditView && array_key_exists(WPACU_LOAD_ASSETS_REQ_KEY, $_REQUEST));
715
716
if (!$isFrontEndEditView && !$isDashboardEditView) {
717
return;
@@ -999,10 +1020,16 @@ class Main
999
$data = $this->setPageTemplate($data);
1000
}
1001
1002
- $data['total_styles'] = ! empty($data['all']['styles']) ? count($data['all']['styles']) : 0;
1003
- $data['total_scripts'] = ! empty($data['all']['scripts']) ? count($data['all']['scripts']) : 0;
1004
1005
- $data['all_deps'] = $this->getAllDeps($data['all']);
1006
1007
$this->parseTemplate('settings-frontend', $data, true);
1008
} elseif ($isDashboardEditView) {
@@ -1064,7 +1091,7 @@ class Main
1064
*/
1065
public function ajaxGetJsonListCallback()
1066
{
1067
- $postId = isset($_POST['post_id']) ? (int)$_POST['post_id'] : ''; // if any (could be home page for instance)
1068
$pageUrl = Misc::getVar('post', 'page_url'); // post, page, custom post type, home page etc.
1069
1070
// Not homepage, but a post/page? Check if it's published in case AJAX call
@@ -1103,8 +1130,8 @@ class Main
1103
if (! $wpacuList) {
1104
$data = array(
1105
'is_dashboard_view' => true,
1106
- 'plugin_settings' => $settings->getAll(),
1107
- 'wp_remote_post' => $wpRemotePost,
1108
);
1109
1110
$this->parseTemplate('meta-box-loaded', $data, true);
@@ -1192,9 +1219,9 @@ class Main
1192
return;
1193
}
1194
1195
- $activePluginsIcons = Misc::fetchActiveFreePluginsIcons();
1196
1197
- if ($activePluginsIcons) {
1198
echo print_r($activePluginsIcons, true)."\n";
1199
exit;
1200
}
@@ -1650,7 +1677,7 @@ class Main
1650
// This request specifically asks for all the assets to be loaded in order to print them in the assets management list
1651
// This is for the AJAX requests within the Dashboard, thus the admin needs to see all the assets,
1652
// including ones marked for unload, in case he/she decides to change their rules
1653
- if (isset($_REQUEST[WPACU_LOAD_ASSETS_REQ_KEY])) {
1654
return true;
1655
}
1656
@@ -1682,9 +1709,17 @@ class Main
1682
add_action ($current_screen->taxonomy . '_edit_form_fields', function ($tag) {
1683
?>
1684
<tr class="form-field">
1685
- <th scope="row" valign="top"><label for="wpassetcleanup_list"><?php echo WPACU_PLUGIN_TITLE; ?> CSS &amp; JavaScript Load Manager</label></th>
1686
<td data-wpacu-taxonomy="<?php echo $tag->taxonomy; ?>">
1687
- <img width="20" height="20" src="<?php echo WPACU_PLUGIN_URL; ?>/assets/icons/icon-lock.svg" valign="top" alt="" /> &nbsp;Managing the loading of the styles &amp; scripts files for this <strong><?php echo $tag->taxonomy; ?></strong> taxonomy is <a href="<?php echo WPACU_PLUGIN_GO_PRO_URL; ?>?utm_source=taxonomy_edit_page&utm_medium=upgrade_link" target="_blank">available in the Pro version</a>.
1688
</td>
1689
</tr>
1690
<?php
120
*/
121
public $isAjaxCall = false;
122
123
+ /**
124
+ * Fetch CSS/JS list from the Dashboard
125
+ *
126
+ * @var bool
127
+ */
128
+ public $isGetAssetsCall = false;
129
+
130
/**
131
* Populated in the Parser constructor
132
*
171
'query-monitor'
172
);
173
174
+ $this->isAjaxCall = (! empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) === 'xmlhttprequest');
175
+ $this->isGetAssetsCall = isset($_REQUEST[WPACU_LOAD_ASSETS_REQ_KEY]) && $_REQUEST[WPACU_LOAD_ASSETS_REQ_KEY];
176
177
// Early Triggers
178
add_action('wp', array($this, 'setVarsBeforeUpdate'), 8);
179
add_action('wp', array($this, 'setVarsAfterAnyUpdate'), 10);
180
181
+ // Fetch Assets AJAX Call? Make sure the output is as clean as possible (no plugins interfering with it)
182
+ if ($this->isGetAssetsCall) {
183
+ $wpacuMisc = new Misc();
184
+ $wpacuMisc->cleanUpHtmlOutputForAssetsCall();
185
+ }
186
187
+ // "Direct" AJAX call or "WP Remote Post" method used?
188
+ // Do not trigger the admin bar as it's not relevant
189
+ if ($this->isAjaxCall || $this->isGetAssetsCall) {
190
Misc::noAdminBarLoad();
191
}
192
198
// If there are reasons to prevent the unloading in case 'test mode' is enabled,
199
// then the prevention will trigger within filterStyles() and filterScripts()
200
201
+ if (! $this->isGetAssetsCall) { // No AJAX call from the Dashboard? Trigger the code below
202
+ // SG Optimizer Compatibility: Unload Styles - HEAD (Before pre_combine_header_styles() from Combinator)
203
+ if (get_option('siteground_optimizer_combine_css')) {
204
+ add_action( 'wp_print_styles', array( $this, 'filterStyles' ), 9 ); // priority should be below 10
205
+ }
206
+
207
// Unload Styles - HEAD
208
add_action( 'wp_print_styles', array( $this, 'filterStyles' ), 100000 );
209
240
self::$domGetType = $this->settings['dom_get_type'];
241
}
242
243
// Fetch the page in the background to see what scripts/styles are already loading
244
+ if ($this->isGetAssetsCall || $this->frontendShow()) {
245
+ if ($this->isGetAssetsCall) {
246
Misc::noAdminBarLoad();
247
}
248
291
*/
292
public function setVarsBeforeUpdate()
293
{
294
+ // Conditions
295
+ // 1) User has rights to manage the assets and the option is enabled in plugin's Settings
296
+ // 2) Not an AJAX call from the Dashboard
297
+ // 3) Not inside the Dashboard
298
+ $this->isFrontendEditView = ($this->frontendShow() && Menu::userCanManageAssets() // 1
299
+ && !$this->isGetAssetsCall // 2
300
+ && !is_admin()); // 3
301
+
302
+ if ($this->isFrontendEditView) {
303
+ $wpacuMisc = new Misc();
304
+ $wpacuMisc->cleanUpHtmlOutputForAssetsCall();
305
+ }
306
307
$this->getCurrentPostId();
308
309
+ define('WPACU_CURRENT_PAGE_ID', $this->getCurrentPostId());
310
}
311
312
/**
314
*/
315
public function setVarsAfterAnyUpdate()
316
{
317
+ if (! $this->isGetAssetsCall && ! is_admin()) {
318
$this->globalUnloaded = $this->getGlobalUnload();
319
320
// [wpacu_lite]
732
}
733
734
$isFrontEndEditView = $this->isFrontendEditView;
735
+ $isDashboardEditView = (!$isFrontEndEditView && $this->isGetAssetsCall);
736
737
if (!$isFrontEndEditView && !$isDashboardEditView) {
738
return;
1020
$data = $this->setPageTemplate($data);
1021
}
1022
1023
+ // [wpacu_lite]
1024
+ if ($this->isUpdateable) {
1025
+ // [/wpacu_lite]
1026
+ $data['total_styles'] = ! empty($data['all']['styles']) ? count($data['all']['styles']) : 0;
1027
+ $data['total_scripts'] = ! empty($data['all']['scripts']) ? count($data['all']['scripts']) : 0;
1028
1029
+ $data['all_deps'] = $this->getAllDeps($data['all']);
1030
+ // [wpacu_lite]
1031
+ }
1032
+ // [/wpacu_lite]
1033
1034
$this->parseTemplate('settings-frontend', $data, true);
1035
} elseif ($isDashboardEditView) {
1091
*/
1092
public function ajaxGetJsonListCallback()
1093
{
1094
+ $postId = (int)Misc::getVar('post', 'post_id'); // if any (could be home page for instance)
1095
$pageUrl = Misc::getVar('post', 'page_url'); // post, page, custom post type, home page etc.
1096
1097
// Not homepage, but a post/page? Check if it's published in case AJAX call
1130
if (! $wpacuList) {
1131
$data = array(
1132
'is_dashboard_view' => true,
1133
+ 'plugin_settings' => $settings->getAll(),
1134
+ 'wp_remote_post' => $wpRemotePost
1135
);
1136
1137
$this->parseTemplate('meta-box-loaded', $data, true);
1219
return;
1220
}
1221
1222
+ $activePluginsIcons = Misc::fetchActiveFreePluginsIcons() ?: array();
1223
1224
+ if ($activePluginsIcons && is_array($activePluginsIcons) && ! empty($activePluginsIcons)) {
1225
echo print_r($activePluginsIcons, true)."\n";
1226
exit;
1227
}
1677
// This request specifically asks for all the assets to be loaded in order to print them in the assets management list
1678
// This is for the AJAX requests within the Dashboard, thus the admin needs to see all the assets,
1679
// including ones marked for unload, in case he/she decides to change their rules
1680
+ if ($this->isGetAssetsCall) {
1681
return true;
1682
}
1683
1709
add_action ($current_screen->taxonomy . '_edit_form_fields', function ($tag) {
1710
?>
1711
<tr class="form-field">
1712
+ <th scope="row" valign="top"><label for="wpassetcleanup_list"><?php echo WPACU_PLUGIN_TITLE; ?> <?php _e('CSS &amp; JavaScript Load Manager', WPACU_PLUGIN_TEXT_DOMAIN); ?></label></th>
1713
<td data-wpacu-taxonomy="<?php echo $tag->taxonomy; ?>">
1714
+ <img width="20" height="20" src="<?php echo WPACU_PLUGIN_URL; ?>/assets/icons/icon-lock.svg" valign="top" alt="" /> &nbsp;
1715
+ <?php
1716
+ echo sprintf(
1717
+ __('Managing the loading of the styles &amp; scripts files for this <strong>%s</strong> taxonomy is %savailable in the Pro version%s', WPACU_PLUGIN_TEXT_DOMAIN),
1718
+ $tag->taxonomy,
1719
+ '<a href="'.WPACU_PLUGIN_GO_PRO_URL.'?utm_source=taxonomy_edit_page&utm_medium=upgrade_link" target="_blank">',
1720
+ '</a>'
1721
+ );
1722
+ ?>
1723
</td>
1724
</tr>
1725
<?php
classes/MetaBoxes.php CHANGED
@@ -11,7 +11,12 @@ class MetaBoxes
11
* @var array
12
*/
13
public $noMetaBoxesForPostTypes = array(
14
- 'ct_template' // Oxygen Page Builder
15
);
16
17
/**
11
* @var array
12
*/
13
public $noMetaBoxesForPostTypes = array(
14
+ // Oxygen Page Builder
15
+ 'ct_template',
16
+
17
+ // Themify Page Builder (Layout & Layout Part)
18
+ 'tbuilder_layout',
19
+ 'tbuilder_layout_part'
20
);
21
22
/**
classes/Misc.php CHANGED
@@ -343,6 +343,22 @@ class Misc
343
return in_array('woocommerce/woocommerce.php', apply_filters('active_plugins', get_option('active_plugins')));
344
}
345
346
/**
347
* @param $requestMethod
348
* @param $key
@@ -367,6 +383,23 @@ class Misc
367
return $defaultValue;
368
}
369
370
/**
371
* @param bool $onlyTransient
372
*
@@ -386,13 +419,13 @@ class Misc
386
387
// Do not fetch the icons from the WordPress.org repository if only transient was required
388
if ($onlyTransient) {
389
- return false;
390
}
391
392
$allActivePlugins = get_option('active_plugins');
393
394
if (empty($allActivePlugins)) {
395
- return false;
396
}
397
398
foreach ($allActivePlugins as $activePlugin) {
@@ -463,7 +496,7 @@ class Misc
463
}
464
465
if (empty($activePluginsIcons)) {
466
- return false;
467
}
468
469
set_transient('wpacu_active_plugins_icons', json_encode($activePluginsIcons), 1209600); // in seconds
@@ -477,7 +510,7 @@ class Misc
477
public static function getAllActivePluginsIcons()
478
{
479
$popularPluginsIcons = array(
480
- 'elementor' => WPACU_PLUGIN_URL . '/assets/icons/premium-plugins/elementor-pro.jpg',
481
'elementor-pro' => WPACU_PLUGIN_URL . '/assets/icons/premium-plugins/elementor-pro.jpg',
482
'oxygen' => WPACU_PLUGIN_URL . '/assets/icons/premium-plugins/oxygen.png',
483
'gravityforms' => WPACU_PLUGIN_URL . '/assets/icons/premium-plugins/gravityforms-blue.svg',
@@ -487,7 +520,7 @@ class Misc
487
'monarch' => WPACU_PLUGIN_URL . '/assets/icons/premium-plugins/monarch.jpg'
488
);
489
490
- $allActivePluginsIcons = self::fetchActiveFreePluginsIcons(true);
491
492
foreach (get_option('active_plugins') as $activePlugin) {
493
if (strpos($activePlugin, '/') !== false) {
@@ -530,6 +563,86 @@ class Misc
530
return '';
531
}
532
533
/**
534
* Triggers only in the front-end view (e.g. Homepage URL, /contact/, /about/ etc.)
535
* Except the situations below: no page builders edit mode etc.
@@ -537,12 +650,7 @@ class Misc
537
* @return bool
538
*/
539
public static function triggerFrontendOptimization()
540
- {
541
- // "Oxygen Builder" Edit Mode
542
- if (isset($_GET['ct_builder'], $_GET['ct_inner']) && $_GET['ct_builder'] === 'true' && $_GET['ct_inner'] === 'true') {
543
- return false;
544
- }
545
-
546
// "Elementor" Edit Mode
547
if (isset($_GET['elementor-preview']) && $_GET['elementor-preview']) {
548
return false;
343
return in_array('woocommerce/woocommerce.php', apply_filters('active_plugins', get_option('active_plugins')));
344
}
345
346
+ /**
347
+ * @param $array
348
+ *
349
+ * @return mixed
350
+ */
351
+ public static function arrayKeyFirst($array)
352
+ {
353
+ if (function_exists('array_key_first')) {
354
+ return array_key_first($array);
355
+ }
356
+
357
+ $arrayKeys = array_keys($array);
358
+
359
+ return $arrayKeys[0];
360
+ }
361
+
362
/**
363
* @param $requestMethod
364
* @param $key
383
return $defaultValue;
384
}
385
386
+ /**
387
+ * @param $optionName
388
+ * @param $optionValue
389
+ * @param string $autoload
390
+ */
391
+ public static function addUpdateOption($optionName, $optionValue, $autoload = 'no')
392
+ {
393
+ // Nothing in the database | Add it
394
+ if (! get_option($optionName)) {
395
+ add_option($optionName, $optionValue, '', $autoload);
396
+ return;
397
+ }
398
+
399
+ // Value is in the database already | Update it
400
+ update_option($optionName, $optionValue, $autoload);
401
+ }
402
+
403
/**
404
* @param bool $onlyTransient
405
*
419
420
// Do not fetch the icons from the WordPress.org repository if only transient was required
421
if ($onlyTransient) {
422
+ return array();
423
}
424
425
$allActivePlugins = get_option('active_plugins');
426
427
if (empty($allActivePlugins)) {
428
+ return array();
429
}
430
431
foreach ($allActivePlugins as $activePlugin) {
496
}
497
498
if (empty($activePluginsIcons)) {
499
+ return array();
500
}
501
502
set_transient('wpacu_active_plugins_icons', json_encode($activePluginsIcons), 1209600); // in seconds
510
public static function getAllActivePluginsIcons()
511
{
512
$popularPluginsIcons = array(
513
+ 'elementor' => WPACU_PLUGIN_URL . '/assets/icons/premium-plugins/elementor.svg',
514
'elementor-pro' => WPACU_PLUGIN_URL . '/assets/icons/premium-plugins/elementor-pro.jpg',
515
'oxygen' => WPACU_PLUGIN_URL . '/assets/icons/premium-plugins/oxygen.png',
516
'gravityforms' => WPACU_PLUGIN_URL . '/assets/icons/premium-plugins/gravityforms-blue.svg',
520
'monarch' => WPACU_PLUGIN_URL . '/assets/icons/premium-plugins/monarch.jpg'
521
);
522
523
+ $allActivePluginsIcons = self::fetchActiveFreePluginsIcons(true) ?: array();
524
525
foreach (get_option('active_plugins') as $activePlugin) {
526
if (strpos($activePlugin, '/') !== false) {
563
return '';
564
}
565
566
+ /**
567
+ *
568
+ */
569
+ public function cleanUpHtmlOutputForAssetsCall()
570
+ {
571
+ // W3 Total Cache: No Minify
572
+ add_filter('w3tc_minify_enable', '__return_false');
573
+
574
+ // SG Optimizer Plugin
575
+ $sgOptimizerMapping = array(
576
+ 'autoflush' => 'siteground_optimizer_autoflush_cache',
577
+ 'dynamic-cache' => 'siteground_optimizer_enable_cache',
578
+ 'memcache' => 'siteground_optimizer_enable_memcached',
579
+ 'ssl-fix' => 'siteground_optimizer_fix_insecure_content',
580
+ 'html' => 'siteground_optimizer_optimize_html',
581
+ 'js' => 'siteground_optimizer_optimize_javascript',
582
+ 'js-async' => 'siteground_optimizer_optimize_javascript_async',
583
+ 'css' => 'siteground_optimizer_optimize_css',
584
+ 'combine-css' => 'siteground_optimizer_combine_css',
585
+ 'querystring' => 'siteground_optimizer_remove_query_strings',
586
+ 'emojis' => 'siteground_optimizer_disable_emojis',
587
+ 'images' => 'siteground_optimizer_optimize_images',
588
+ 'lazyload_images' => 'siteground_optimizer_lazyload_images',
589
+ 'lazyload_gravatars' => 'siteground_optimizer_lazyload_gravatars',
590
+ 'lazyload_thumbnails' => 'siteground_optimizer_lazyload_thumbnails',
591
+ 'lazyload_responsive' => 'siteground_optimizer_lazyload_responsive',
592
+ 'lazyload_textwidgets' => 'siteground_optimizer_lazyload_textwidgets',
593
+ 'ssl' => 'siteground_optimizer_ssl_enabled',
594
+ 'gzip' => 'siteground_optimizer_enable_gzip_compression',
595
+ 'browser-caching' => 'siteground_optimizer_enable_browser_caching',
596
+ );
597
+
598
+ foreach ($sgOptimizerMapping as $optionName) {
599
+ add_filter('pre_option_'.$optionName, '__return_false');
600
+ }
601
+
602
+ // Fallback in case SG Optimizer is triggered BEFORE Asset CleanUp and the filter above will not work
603
+ add_filter('sgo_css_combine_exclude', array($this, 'allCssHandles'));
604
+ add_filter('sgo_css_minify_exclude', array($this, 'allCssHandles'));
605
+ add_filter('sgo_js_minify_exclude', array($this, 'allJsHandles'));
606
+ add_filter('sgo_js_async_exclude', array($this, 'allJsHandles'));
607
+
608
+ add_filter('sgo_html_minify_exclude_params', function ($excludeParams) {
609
+ $excludeParams[] = WPACU_LOAD_ASSETS_REQ_KEY;
610
+ return $excludeParams;
611
+ });
612
+ }
613
+
614
+ /**
615
+ * @return array
616
+ */
617
+ public function allCssHandles()
618
+ {
619
+ global $wp_styles;
620
+
621
+ $allCssHandles = array();
622
+
623
+ if (isset($wp_styles->registered) && ! empty($wp_styles->registered)) {
624
+ $allCssHandles = array_keys($wp_styles->registered);
625
+ }
626
+
627
+ return $allCssHandles;
628
+ }
629
+
630
+ /**
631
+ * @return array
632
+ */
633
+ public function allJsHandles()
634
+ {
635
+ global $wp_scripts;
636
+
637
+ $allJsHandles = array();
638
+
639
+ if (isset($wp_scripts->registered) && ! empty($wp_scripts->registered)) {
640
+ $allJsHandles = array_keys($wp_scripts->registered);
641
+ }
642
+
643
+ return $allJsHandles;
644
+ }
645
+
646
/**
647
* Triggers only in the front-end view (e.g. Homepage URL, /contact/, /about/ etc.)
648
* Except the situations below: no page builders edit mode etc.
650
* @return bool
651
*/
652
public static function triggerFrontendOptimization()
653
+ {
654
// "Elementor" Edit Mode
655
if (isset($_GET['elementor-preview']) && $_GET['elementor-preview']) {
656
return false;
classes/OptimiseAssets/MinifyCss.php CHANGED
@@ -273,17 +273,16 @@ class MinifyCss
273
*/
274
public function skipMinify($src)
275
{
276
-
277
-
278
$regExps = array(
279
'#/wp-content/plugins/wp-asset-clean-up(.*?).min.css#',
280
281
// Other libraries from the core that end in .min.css
282
'#/wp-includes/css/(.*?).min.css#',
283
284
- // Files within /wp-content/uploads/
285
// Could belong to plugins such as "Elementor, "Oxygen" etc.
286
- '#/wp-content/uploads/(.*?).css#'
287
288
);
289
273
*/
274
public function skipMinify($src)
275
{
276
$regExps = array(
277
'#/wp-content/plugins/wp-asset-clean-up(.*?).min.css#',
278
279
// Other libraries from the core that end in .min.css
280
'#/wp-includes/css/(.*?).min.css#',
281
282
+ // Files within /wp-content/uploads/ or /wp-content/cache/
283
// Could belong to plugins such as "Elementor, "Oxygen" etc.
284
+ '#/wp-content/uploads/(.*?).css#',
285
+ '#/wp-content/cache/(.*?).css#'
286
287
);
288
classes/OptimiseAssets/MinifyJs.php CHANGED
@@ -402,8 +402,10 @@ class MinifyJs
402
'#/wp-includes/js/jquery/jquery.js#',
403
404
// Files within /wp-content/uploads/
405
// Could belong to plugins such as "Elementor, "Oxygen" etc.
406
- '#/wp-content/uploads/(.*?).js#'
407
408
);
409
402
'#/wp-includes/js/jquery/jquery.js#',
403
404
// Files within /wp-content/uploads/
405
+ // Files within /wp-content/uploads/ or /wp-content/cache/
406
// Could belong to plugins such as "Elementor, "Oxygen" etc.
407
+ '#/wp-content/uploads/(.*?).js#',
408
+ '#/wp-content/cache/(.*?).js#'
409
410
);
411
classes/OptimiseAssets/OptimizeCss.php CHANGED
@@ -189,7 +189,7 @@ class OptimizeCss
189
}
190
191
$maybeDoCssCombine = $this->maybeDoCssCombine( sha1( implode( '', $combinedUriPaths ) ),
192
- $localAssetsPaths, $linkHrefs );
193
194
// Local path to combined CSS file
195
$localFinalCssFile = $maybeDoCssCombine['local_final_css_file'];
@@ -291,15 +291,16 @@ HTML;
291
* @param $shaOneCombinedUriPaths
292
* @param $localAssetsPaths
293
* @param $linkHrefs
294
*
295
* @return array
296
*/
297
- public function maybeDoCssCombine($shaOneCombinedUriPaths, $localAssetsPaths, $linkHrefs)
298
{
299
$current_user = wp_get_current_user();
300
$dirToUserCachedFile = ((isset($current_user->ID) && $current_user->ID > 0) ? 'logged-in/'.$current_user->ID.'/' : '');
301
302
- $uriToFinalCssFile = $dirToUserCachedFile . $shaOneCombinedUriPaths . '.css';
303
$localFinalCssFile = WP_CONTENT_DIR . self::$relPathCssCacheDir . $uriToFinalCssFile;
304
305
$localDirForCssFile = WP_CONTENT_DIR . self::$relPathCssCacheDir . $dirToUserCachedFile;
189
}
190
191
$maybeDoCssCombine = $this->maybeDoCssCombine( sha1( implode( '', $combinedUriPaths ) ),
192
+ $localAssetsPaths, $linkHrefs, $docLocationTag );
193
194
// Local path to combined CSS file
195
$localFinalCssFile = $maybeDoCssCombine['local_final_css_file'];
291
* @param $shaOneCombinedUriPaths
292
* @param $localAssetsPaths
293
* @param $linkHrefs
294
+ * @param $docLocationTag
295
*
296
* @return array
297
*/
298
+ public function maybeDoCssCombine($shaOneCombinedUriPaths, $localAssetsPaths, $linkHrefs, $docLocationTag)
299
{
300
$current_user = wp_get_current_user();
301
$dirToUserCachedFile = ((isset($current_user->ID) && $current_user->ID > 0) ? 'logged-in/'.$current_user->ID.'/' : '');
302
303
+ $uriToFinalCssFile = $dirToUserCachedFile . $docLocationTag . '-' .$shaOneCombinedUriPaths . '.css';
304
$localFinalCssFile = WP_CONTENT_DIR . self::$relPathCssCacheDir . $uriToFinalCssFile;
305
306
$localDirForCssFile = WP_CONTENT_DIR . self::$relPathCssCacheDir . $dirToUserCachedFile;
classes/OptimiseAssets/OptimizeJs.php CHANGED
@@ -204,7 +204,7 @@ class OptimizeJs
204
$groupIndex ++;
205
}
206
207
- if ($reachedBody && Main::instance()->settings['combine_loaded_js_defer_body']) {
208
$bodyGroupIndexes[] = $groupIndex;
209
}
210
}
@@ -241,9 +241,13 @@ class OptimizeJs
241
$groupScriptTags[] = $groupFileData['html'];
242
}
243
244
$maybeDoJsCombine = $this->maybeDoJsCombine(
245
sha1( implode( '', $combinedUriPaths ) ) . '-' . $groupNo,
246
- $localAssetsPaths
247
);
248
249
// Local path to combined CSS file
@@ -270,7 +274,7 @@ class OptimizeJs
270
'script_tags' => $groupScriptTagsFilter
271
);
272
273
- if (in_array($groupIndex, $bodyGroupIndexes)) {
274
$finalCacheList[ $groupNo ]['extras'][] = 'defer';
275
}
276
@@ -376,6 +380,9 @@ HTML;
376
*/
377
public function lastScriptSrcFromHead($htmlSource)
378
{
379
$bodyHtml = Misc::extractBetween( $htmlSource, '<head', '</head>' );
380
381
$regExpPattern = '#<script[^>]*>.*?</script>#is';
@@ -414,15 +421,16 @@ HTML;
414
/**
415
* @param $shaOneCombinedUriPaths
416
* @param $localAssetsPaths
417
*
418
* @return array
419
*/
420
- public function maybeDoJsCombine($shaOneCombinedUriPaths, $localAssetsPaths)
421
{
422
$current_user = wp_get_current_user();
423
$dirToUserCachedFile = ((isset($current_user->ID) && $current_user->ID > 0) ? 'logged-in/'.$current_user->ID.'/' : '');
424
425
- $uriToFinalJsFile = $dirToUserCachedFile . $shaOneCombinedUriPaths . '.js';
426
427
$localFinalJsFile = WP_CONTENT_DIR . self::$relPathJsCacheDir . $uriToFinalJsFile;
428
$localDirForJsFile = WP_CONTENT_DIR . self::$relPathJsCacheDir . $dirToUserCachedFile;
204
$groupIndex ++;
205
}
206
207
+ if ($reachedBody) {
208
$bodyGroupIndexes[] = $groupIndex;
209
}
210
}
241
$groupScriptTags[] = $groupFileData['html'];
242
}
243
244
+ // <head> or <body>
245
+ $docLocationScript = in_array($groupIndex, $bodyGroupIndexes) ? 'body' : 'head';
246
+
247
$maybeDoJsCombine = $this->maybeDoJsCombine(
248
sha1( implode( '', $combinedUriPaths ) ) . '-' . $groupNo,
249
+ $localAssetsPaths,
250
+ $docLocationScript
251
);
252
253
// Local path to combined CSS file
274
'script_tags' => $groupScriptTagsFilter
275
);
276
277
+ if (Main::instance()->settings['combine_loaded_js_defer_body'] && in_array($groupIndex, $bodyGroupIndexes)) {
278
$finalCacheList[ $groupNo ]['extras'][] = 'defer';
279
}
280
380
*/
381
public function lastScriptSrcFromHead($htmlSource)
382
{
383
+ // Do not check MSIE conditional comments as they are not combined
384
+ $htmlSource = OptimizeCommon::cleanerHtmlSource($htmlSource);
385
+
386
$bodyHtml = Misc::extractBetween( $htmlSource, '<head', '</head>' );
387
388
$regExpPattern = '#<script[^>]*>.*?</script>#is';
421
/**
422
* @param $shaOneCombinedUriPaths
423
* @param $localAssetsPaths
424
+ * @param $doclocationScript
425
*
426
* @return array
427
*/
428
+ public function maybeDoJsCombine($shaOneCombinedUriPaths, $localAssetsPaths, $docLocationScript)
429
{
430
$current_user = wp_get_current_user();
431
$dirToUserCachedFile = ((isset($current_user->ID) && $current_user->ID > 0) ? 'logged-in/'.$current_user->ID.'/' : '');
432
433
+ $uriToFinalJsFile = $dirToUserCachedFile . $docLocationScript . '-' . $shaOneCombinedUriPaths . '.js';
434
435
$localFinalJsFile = WP_CONTENT_DIR . self::$relPathJsCacheDir . $uriToFinalJsFile;
436
$localDirForJsFile = WP_CONTENT_DIR . self::$relPathJsCacheDir . $dirToUserCachedFile;
classes/OwnAssets.php CHANGED
@@ -103,7 +103,7 @@ class OwnAssets
103
}
104
105
$page = Misc::getVar('get', 'page');
106
- $getPostId = isset($_GET['post']) ? (int)$_GET['post'] : '';
107
108
// Only load the plugin's assets when they are needed
109
// This an example of assets that are correctly loaded in WordPress
103
}
104
105
$page = Misc::getVar('get', 'page');
106
+ $getPostId = (int)Misc::getVar('get', 'post');
107
108
// Only load the plugin's assets when they are needed
109
// This an example of assets that are correctly loaded in WordPress
classes/Plugin.php CHANGED
@@ -43,7 +43,16 @@ class Plugin
43
public function adminFooter($text)
44
{
45
if (isset($_GET['page']) && strpos($_GET['page'], WPACU_PLUGIN_ID) !== false) {
46
- $text = 'Thank you for using '.WPACU_PLUGIN_TITLE.' v'.WPACU_PLUGIN_VERSION.') <span class="dashicons dashicons-smiley"></span> &nbsp;&nbsp; If you like it, please <a target="_blank" href="'.self::RATE_URL.'"><strong>rate</strong> '.WPACU_PLUGIN_TITLE.'</a> <a target="_blank" href="'.self::RATE_URL.'"><span class="dashicons dashicons-wpacu dashicons-star-filled"></span><span class="dashicons dashicons-wpacu dashicons-star-filled"></span><span class="dashicons dashicons-wpacu dashicons-star-filled"></span><span class="dashicons dashicons-wpacu dashicons-star-filled"></span><span class="dashicons dashicons-wpacu dashicons-star-filled"></span></a> on WordPress.org to help me spread the word to the community.';
47
}
48
49
return $text;
@@ -165,7 +174,7 @@ HTACCESS;
165
166
// If the Pro version is not installed (active or not), show the upgrade link
167
if (! array_key_exists('wp-asset-clean-up-pro/wpacu.php', $allPlugins)) {
168
- $links['go_pro'] = '<a target="_blank" style="font-weight: bold;" href="'.WPACU_PLUGIN_GO_PRO_URL.'">Go Pro</a>';
169
}
170
// [/wpacu_lite]
171
43
public function adminFooter($text)
44
{
45
if (isset($_GET['page']) && strpos($_GET['page'], WPACU_PLUGIN_ID) !== false) {
46
+ $text = sprintf(__('Thank you for using %s', WPACU_PLUGIN_TEXT_DOMAIN), WPACU_PLUGIN_TITLE.' v'.WPACU_PLUGIN_VERSION)
47
+ . ' <span class="dashicons dashicons-smiley"></span> &nbsp;&nbsp;';
48
+
49
+ $text .= sprintf(
50
+ __('If you like it, please %s<strong>rate</strong> %s%s %s on WordPress.org to help me spread the word to the community.', WPACU_PLUGIN_TEXT_DOMAIN),
51
+ '<a target="_blank" href="'.self::RATE_URL.'">',
52
+ WPACU_PLUGIN_TITLE,
53
+ '</a>',
54
+ '<a target="_blank" href="'.self::RATE_URL.'"><span class="dashicons dashicons-wpacu dashicons-star-filled"></span><span class="dashicons dashicons-wpacu dashicons-star-filled"></span><span class="dashicons dashicons-wpacu dashicons-star-filled"></span><span class="dashicons dashicons-wpacu dashicons-star-filled"></span><span class="dashicons dashicons-wpacu dashicons-star-filled"></span></a>'
55
+ );
56
}
57
58
return $text;
174
175
// If the Pro version is not installed (active or not), show the upgrade link
176
if (! array_key_exists('wp-asset-clean-up-pro/wpacu.php', $allPlugins)) {
177
+ $links['go_pro'] = '<a target="_blank" style="font-weight: bold;" href="'.WPACU_PLUGIN_GO_PRO_URL.'">'.__('Go Pro', WPACU_PLUGIN_TEXT_DOMAIN).'</a>';
178
}
179
// [/wpacu_lite]
180
classes/Settings.php CHANGED
@@ -106,8 +106,12 @@ class Settings
106
// Direct AJAX call by default (not via WP Remote Post)
107
'dom_get_type' => 'direct',
108
109
- // Very good especially for page builders: Divi Visual Builder, Oxygen Builder, WPBakery etc.
110
- 'frontend_show_exceptions' => 'et_fb=1'."\n".'ct_builder=true'."\n".'vc_editable=true',
111
112
// Since v1.2.9.3 (lite), the default value is "by-location" (All Styles & All Scripts - By Location (Theme, Plugins, Custom & External))
113
// Prior to that it's "two-lists" (All Styles & All Scripts - 2 separate lists)
@@ -118,8 +122,11 @@ class Settings
118
119
'assets_list_inline_code_status' => 'contracted',
120
121
- 'minify_loaded_css_exceptions' => '(.*?).min.css',
122
- 'minify_loaded_js_exceptions' => '(.*?).min.js',
123
124
'input_style' => 'enhanced',
125
@@ -173,7 +180,7 @@ class Settings
173
*/
174
public function saveSettings()
175
{
176
- if ( ! (isset($_POST['wpacu_settings_nonce']) && $_POST['wpacu_settings_nonce']) ) {
177
return;
178
}
179
@@ -369,7 +376,7 @@ class Settings
369
$wpacuUpdate->removeEverywhereUnloads(array(), $removeFromUnloadList);
370
}
371
372
- update_option(WPACU_PLUGIN_ID . '_settings', json_encode($settings), 'no');
373
374
$this->redirectAfterUpdate();
375
}
@@ -379,8 +386,10 @@ class Settings
379
*/
380
public function redirectAfterUpdate()
381
{
382
- $tabArea = isset($_POST['wpacu_selected_tab_area']) ? $_POST['wpacu_selected_tab_area'] : 'wpacu-setting-plugin-usage-settings';
383
set_transient('wpacu_settings_updated', 1, 30);
384
wp_redirect(admin_url('admin.php?page=wpassetcleanup_settings&wpacu_selected_tab_area='.$tabArea.'&wpacu_time='.time()));
385
exit();
386
}
106
// Direct AJAX call by default (not via WP Remote Post)
107
'dom_get_type' => 'direct',
108
109
+ // Very good especially for page builders: Divi Visual Builder, Oxygen Builder, WPBakery, Beaver Builder etc.
110
+ // It is also hidden in preview mode (if query strings such as 'preview_nonce' are used)
111
+ 'frontend_show_exceptions' => 'et_fb=1'."\n"
112
+ .'ct_builder=true'."\n"
113
+ .'vc_editable=true'."\n"
114
+ .'preview_nonce='."\n",
115
116
// Since v1.2.9.3 (lite), the default value is "by-location" (All Styles & All Scripts - By Location (Theme, Plugins, Custom & External))
117
// Prior to that it's "two-lists" (All Styles & All Scripts - 2 separate lists)
122
123
'assets_list_inline_code_status' => 'contracted',
124
125
+ 'minify_loaded_css_exceptions' => '(.*?).min.css'. "\n". '/plugins/wd-instagram-feed/(.*?).css',
126
+ 'minify_loaded_js_exceptions' => '(.*?).min.js' . "\n". '/plugins/wd-instagram-feed/(.*?).js',
127
+
128
+ 'combine_loaded_css_exceptions' => '/plugins/wd-instagram-feed/(.*?).css',
129
+ 'combine_loaded_js_exceptions' => '/plugins/wd-instagram-feed/(.*?).js',
130
131
'input_style' => 'enhanced',
132
180
*/
181
public function saveSettings()
182
{
183
+ if (! Misc::getVar('post', 'wpacu_settings_nonce')) {
184
return;
185
}
186
376
$wpacuUpdate->removeEverywhereUnloads(array(), $removeFromUnloadList);
377
}
378
379
+ Misc::addUpdateOption(WPACU_PLUGIN_ID . '_settings', json_encode($settings));
380
381
$this->redirectAfterUpdate();
382
}
386
*/
387
public function redirectAfterUpdate()
388
{
389
+ $tabArea = Misc::getVar('post', 'wpacu_selected_tab_area', 'wpacu-setting-plugin-usage-settings');
390
+
391
set_transient('wpacu_settings_updated', 1, 30);
392
+
393
wp_redirect(admin_url('admin.php?page=wpassetcleanup_settings&wpacu_selected_tab_area='.$tabArea.'&wpacu_time='.time()));
394
exit();
395
}
classes/Tools.php CHANGED
@@ -58,11 +58,11 @@ class Tools
58
add_action('wpacu_admin_notices', array($this, 'resetDone'));
59
}
60
61
- if (array_key_exists( 'wpacu-tools-reset', $_POST ) && $_POST['wpacu-tools-reset'] && is_admin()) {
62
$this->doReset();
63
}
64
65
- if (array_key_exists('wpacu-get-system-info', $_POST) && $_POST['wpacu-get-system-info']) {
66
$this->downloadSystemInfo();
67
}
68
}
@@ -180,7 +180,28 @@ class Tools
180
181
$return .= 'Disable Emojis? '. (($settings['disable_emojis'] == 1) ? 'Yes' : 'No') . "\n";
182
$return .= 'Disable jQuery Migrate (site-wide)? '. (($settings['disable_jquery_migrate'] == 1) ? 'Yes' : 'No') . "\n";
183
- $return .= 'Disable Comment Reply (site-wide)? '. (($settings['disable_comment_reply'] == 1) ? 'Yes' : 'No') . "\n";
184
185
// WordPress configuration.
186
// Get theme info.
@@ -326,9 +347,7 @@ class Tools
326
exit();
327
}
328
329
- $isValidPostRequest = isset($_POST['wpacu_get_system_info_nonce']) && $_POST['wpacu_get_system_info_nonce'];
330
-
331
- if (! $isValidPostRequest) {
332
return;
333
}
334
@@ -350,20 +369,20 @@ class Tools
350
public function doReset()
351
{
352
// Several security checks before proceeding with the chosen action
353
- if ( ! (isset($_POST['wpacu_tools_reset_nonce']) && $_POST['wpacu_tools_reset_nonce']) ) {
354
return;
355
}
356
357
\check_admin_referer('wpacu_tools_reset', 'wpacu_tools_reset_nonce');
358
359
- $wpacuResetValue = isset($_POST['wpacu-reset']) ? $_POST['wpacu-reset'] : false;
360
361
if (! $wpacuResetValue) {
362
exit('Error: Field not found, the action is not valid!');
363
}
364
365
// Has to be confirmed
366
- $wpacuConfirmedValue = isset($_POST['wpacu-action-confirmed']) ? $_POST['wpacu-action-confirmed'] : false;
367
368
if ($wpacuConfirmedValue !== 'yes') {
369
exit('Error: Action needs to be confirmed.');
@@ -377,28 +396,50 @@ class Tools
377
378
$this->resetChoice = $wpacuResetValue;
379
380
if ($wpacuResetValue === 'reset_everything') {
381
// `usermeta` and `termmeta` might have traces from the Pro version (if ever used)
382
foreach (array('postmeta', 'usermeta', 'termmeta') as $tableBaseName) {
383
- $sqlQuery = <<<SQL
384
- DELETE FROM `{$wpdb->prefix}{$tableBaseName}` WHERE meta_key LIKE '_wpassetcleanup_%'
385
SQL;
386
- $wpdb->query($sqlQuery);
387
}
388
389
- $sqlQuery = <<<SQL
390
- DELETE FROM `{$wpdb->prefix}options`
391
- WHERE option_name LIKE 'wpassetcleanup_%'
392
- AND option_name NOT IN('wpassetcleanup_pro_license_key', 'wpassetcleanup_pro_license_status')
393
SQL;
394
- $wpdb->query($sqlQuery);
395
396
- delete_option(WPACU_PLUGIN_ID.'_do_activation_redirect_first_time');
397
398
// Remove the license data?
399
if (Misc::getVar('post', 'wpacu-remove-license-data') !== '') {
400
- delete_option(WPACU_PLUGIN_ID . '_pro_license_key');
401
- delete_option(WPACU_PLUGIN_ID . '_pro_license_status');
402
$this->licenseDataRemoved = true;
403
}
404
@@ -408,10 +449,7 @@ SQL;
408
// Refers to the plugins' icons shown when viewing assets list by location is enabled
409
delete_transient('wpacu_active_plugins_icons');
410
} elseif ($wpacuResetValue === 'reset_settings') {
411
- $sqlQuery = <<<SQL
412
- DELETE FROM `{$wpdb->prefix}options` WHERE option_name='wpassetcleanup_settings'
413
- SQL;
414
- $wpdb->query($sqlQuery);
415
}
416
417
// Also make 'jQuery Migrate' and 'Comment Reply' core files to load again
58
add_action('wpacu_admin_notices', array($this, 'resetDone'));
59
}
60
61
+ if (Misc::getVar('post', 'wpacu-tools-reset')) {
62
$this->doReset();
63
}
64
65
+ if (Misc::getVar('post', 'wpacu-get-system-info')) {
66
$this->downloadSystemInfo();
67
}
68
}
180
181
$return .= 'Disable Emojis? '. (($settings['disable_emojis'] == 1) ? 'Yes' : 'No') . "\n";
182
$return .= 'Disable jQuery Migrate (site-wide)? '. (($settings['disable_jquery_migrate'] == 1) ? 'Yes' : 'No') . "\n";
183
+ $return .= 'Disable Comment Reply (site-wide)? '. (($settings['disable_comment_reply'] == 1) ? 'Yes' : 'No') . "\n\n";
184
+
185
+ $return .= 'Remove "Really Simple Discovery (RSD)" link tag? '. (($settings['remove_rsd_link'] == 1) ? 'Yes' : 'No') . "\n";
186
+ $return .= 'Remove "Windows Live Writer" link tag? '. (($settings['remove_wlw_link'] == 1) ? 'Yes' : 'No') . "\n";
187
+ $return .= 'Remove "REST API" link tag? '. (($settings['remove_rest_api_link'] == 1) ? 'Yes' : 'No') . "\n";
188
+ $return .= 'Remove Pages/Posts "Shortlink" tag? '. (($settings['remove_shortlink'] == 1) ? 'Yes' : 'No') . "\n";
189
+ $return .= 'Remove "Post\'s Relational Links" tag? '. (($settings['remove_posts_rel_links'] == 1) ? 'Yes' : 'No') . "\n";
190
+ $return .= 'Remove "WordPress version" meta tag? '. (($settings['remove_wp_version'] == 1) ? 'Yes' : 'No') . "\n";
191
+ $return .= 'Remove All "generator" meta tags? '. (($settings['remove_generator_tag'] == 1) ? 'Yes' : 'No') . "\n";
192
+ $return .= 'Remove Main RSS Feed Link? '. (($settings['remove_main_feed_link'] == 1) ? 'Yes' : 'No') . "\n";
193
+ $return .= 'Remove Comment RSS Feed Link? '. (($settings['remove_comment_feed_link'] == 1) ? 'Yes' : 'No') . "\n";
194
+
195
+ $xmlProtocolStatus = 'Enabled (default)';
196
+
197
+ if ($settings['disable_xmlrpc'] === 'disable_pingback') {
198
+ $xmlProtocolStatus = 'Disable XML-RPC Pingback Only';
199
+ } elseif ($settings['disable_xmlrpc'] === 'disable_all') {
200
+ $xmlProtocolStatus = 'Disable XML-RPC Completely';
201
+ }
202
+
203
+ $return .= "\n" . 'XML-RPC protocol: '. $xmlProtocolStatus . "\n";
204
+
205
206
// WordPress configuration.
207
// Get theme info.
347
exit();
348
}
349
350
+ if (! Misc::getVar('post', 'wpacu_get_system_info_nonce')) {
351
return;
352
}
353
369
public function doReset()
370
{
371
// Several security checks before proceeding with the chosen action
372
+ if ( ! Misc::getVar('post', 'wpacu_tools_reset_nonce')) {
373
return;
374
}
375
376
\check_admin_referer('wpacu_tools_reset', 'wpacu_tools_reset_nonce');
377
378
+ $wpacuResetValue = Misc::getVar('post', 'wpacu-reset', false);
379
380
if (! $wpacuResetValue) {
381
exit('Error: Field not found, the action is not valid!');
382
}
383
384
// Has to be confirmed
385
+ $wpacuConfirmedValue = Misc::getVar('post', 'wpacu-action-confirmed', false);
386
387
if ($wpacuConfirmedValue !== 'yes') {
388
exit('Error: Action needs to be confirmed.');
396
397
$this->resetChoice = $wpacuResetValue;
398
399
+ $wpacuPluginId = WPACU_PLUGIN_ID;
400
+
401
if ($wpacuResetValue === 'reset_everything') {
402
// `usermeta` and `termmeta` might have traces from the Pro version (if ever used)
403
foreach (array('postmeta', 'usermeta', 'termmeta') as $tableBaseName) {
404
+ // Get all Asset CleanUp meta keys from all WordPress meta tables where it can be possibly used
405
+ $wpacuGetMetaKeysQuery = <<<SQL
406
+ SELECT meta_key FROM `{$wpdb->prefix}{$tableBaseName}` WHERE meta_key LIKE '_{$wpacuPluginId}_%'
407
SQL;
408
+ $wpacuMetaKeys = $wpdb->get_col($wpacuGetMetaKeysQuery);
409
+
410
+ if ($tableBaseName === 'postmeta') { // e.g. Posts, Pages, Custom Post Types)
411
+ foreach ($wpacuMetaKeys as $postMetaKey) {
412
+ delete_post_meta_by_key($postMetaKey);
413
+ }
414
+ } elseif ($tableBaseName === 'usermeta') { // User Meta: Pro version (if used)
415
+ foreach ($wpacuMetaKeys as $userMetaKey) {
416
+ delete_metadata('user', 0, $userMetaKey, '', true);
417
+ }
418
+ } elseif ($tableBaseName === 'termmeta') { // e.g. Taxonomy: Pro version (if used)
419
+ foreach ($wpacuMetaKeys as $termMetaKey) {
420
+ delete_metadata('term', 0, $termMetaKey, '', true);
421
+ }
422
+ }
423
}
424
425
+ // Fetch all Asset CleanUp options except the license key related ones
426
+ $sqlQueryGetOptions = <<<SQL
427
+ SELECT option_name FROM `{$wpdb->prefix}options`
428
+ WHERE option_name LIKE '{$wpacuPluginId}_%'
429
+ AND option_name NOT IN('{$wpacuPluginId}_pro_license_key', '{$wpacuPluginId}_pro_license_status')
430
SQL;
431
+ $wpacuOptionNames = $wpdb->get_col($sqlQueryGetOptions);
432
+
433
+ foreach ($wpacuOptionNames as $wpacuOptionName) {
434
+ delete_option($wpacuOptionName);
435
+ }
436
437
+ delete_option($wpacuPluginId.'_do_activation_redirect_first_time');
438
439
// Remove the license data?
440
if (Misc::getVar('post', 'wpacu-remove-license-data') !== '') {
441
+ delete_option($wpacuPluginId . '_pro_license_key');
442
+ delete_option($wpacuPluginId . '_pro_license_status');
443
$this->licenseDataRemoved = true;
444
}
445
449
// Refers to the plugins' icons shown when viewing assets list by location is enabled
450
delete_transient('wpacu_active_plugins_icons');
451
} elseif ($wpacuResetValue === 'reset_settings') {
452
+ delete_option($wpacuPluginId.'_settings');
453
}
454
455
// Also make 'jQuery Migrate' and 'Comment Reply' core files to load again
classes/Update.php CHANGED
@@ -41,12 +41,14 @@ class Update
41
*/
42
public function __construct()
43
{
44
$this->updateDoneMsg['homepage'] = <<<HTML
45
- <span class="dashicons dashicons-yes"></span> The homepage's settings were updated. Please make sure the homepage's cache is cleared (if you're using a caching plugin or a server-side caching solution) to immediately have the changes applied for every visitor.
46
HTML;
47
48
$this->updateDoneMsg['page'] = <<<HTML
49
- <span class="dashicons dashicons-yes"></span> This page's settings were updated. Please make sure the page's cache is cleared (if you're using a caching plugin or a server-side caching solution) to immediately have the changes applied for every visitor.
50
HTML;
51
}
52
@@ -121,7 +123,7 @@ HTML;
121
// Form submitted from the homepage
122
// e.g. from a page such as latest blog posts, not a static page that was selected as home page)
123
if (! ($postId > 0) && Misc::isHomePage()) {
124
- $wpacuNoLoadAssets = isset($_POST[WPACU_PLUGIN_ID]) ? $_POST[WPACU_PLUGIN_ID] : array();
125
$this->updateFrontPage($wpacuNoLoadAssets);
126
return;
127
}
@@ -142,7 +144,7 @@ HTML;
142
public function redirectAfterFrontEndUpdate()
143
{
144
// It triggers ONLY on front-end view, when a valid POST request is made
145
- if ((! $this->frontEndUpdateTriggered) || is_admin() || (! (isset($_POST['wpacu_unload_assets_area_loaded']) && $_POST['wpacu_unload_assets_area_loaded']))) {
146
return;
147
}
148
@@ -205,7 +207,7 @@ HTML;
205
206
// This is triggered only if the "Asset CleanUp" meta box was loaded with the list of assets
207
// Otherwise, $_POST[WPACU_PLUGIN_ID] will be taken as empty which might be not if there are values in the database
208
- if (! (isset($_POST['wpacu_unload_assets_area_loaded']) && $_POST['wpacu_unload_assets_area_loaded'])) {
209
return;
210
}
211
@@ -221,8 +223,7 @@ HTML;
221
return;
222
}
223
224
- $wpacuNoLoadAssets = isset($_POST[WPACU_PLUGIN_ID])
225
- ? $_POST[WPACU_PLUGIN_ID] : array();
226
227
if (is_array($wpacuNoLoadAssets)) {
228
global $wpdb;
@@ -269,7 +270,7 @@ HTML;
269
{
270
// Needed in case the user clicks "Update" on a page without assets retrieved
271
// Avoid resetting the existing values
272
- if (! (isset($_POST['wpacu_unload_assets_area_loaded']) && $_POST['wpacu_unload_assets_area_loaded'])) {
273
return;
274
}
275
@@ -279,9 +280,7 @@ HTML;
279
280
$jsonNoAssetsLoadList = json_encode($wpacuNoLoadAssets);
281
282
- if (! update_option( WPACU_PLUGIN_ID . '_front_page_no_load', $jsonNoAssetsLoadList)) {
283
- add_option( WPACU_PLUGIN_ID . '_front_page_no_load', $jsonNoAssetsLoadList);
284
- }
285
286
// If globally disabled, make exception to load for submitted assets
287
$this->saveLoadExceptions('front_page');
@@ -402,7 +401,7 @@ HTML;
402
update_post_meta($postId, '_' . WPACU_PLUGIN_ID . '_load_exceptions', $jsonLoadExceptions);
403
}
404
} elseif ($type === 'front_page') {
405
- update_option( WPACU_PLUGIN_ID . '_front_page_load_exceptions', $jsonLoadExceptions);
406
}
407
408
}
@@ -415,15 +414,13 @@ HTML;
415
{
416
// Is the "Asset CleanUp: Page Options" meta box not loaded?
417
// Then do not perform any update below
418
- $pageOptionsMetaBoxLoaded = isset($_POST['wpacu_meta_box_page_options_loaded']) ? trim($_POST['wpacu_meta_box_page_options_loaded']) : false;
419
420
if (! $pageOptionsMetaBoxLoaded) {
421
return;
422
}
423
424
- $pageOptions = array_key_exists(WPACU_PLUGIN_ID.'_page_options', $_POST)
425
- ? $_POST[WPACU_PLUGIN_ID.'_page_options']
426
- : array();
427
428
// In order for the "Apply the selected options" to work
429
// At least one of the checkboxes above have to be enabled
@@ -454,11 +451,8 @@ HTML;
454
* Any global (all pages / everywhere) UNLOADS?
455
* Coming from a POST request
456
*/
457
- $reqStyles = (isset($_POST['wpacu_global_unload_styles']) && is_array($_POST['wpacu_global_unload_styles']))
458
- ? $_POST['wpacu_global_unload_styles'] : array();
459
-
460
- $reqScripts = (isset($_POST['wpacu_global_unload_scripts']) && is_array($_POST['wpacu_global_unload_scripts']))
461
- ? $_POST['wpacu_global_unload_scripts'] : array();
462
463
$this->saveToEverywhereUnloads($reqStyles, $reqScripts);
464
@@ -476,7 +470,7 @@ HTML;
476
public function saveToEverywhereUnloads($reqStyles = array(), $reqScripts = array())
477
{
478
// Is there any entry already in JSON format?
479
- $existingListJson = get_option( WPACU_PLUGIN_ID . '_global_unload');
480
481
// Default list as array
482
$existingListEmpty = array('styles' => array(), 'scripts' => array());
@@ -498,10 +492,10 @@ HTML;
498
}
499
500
// Make sure all entries are unique (no handle duplicates)
501
- $existingList['styles'] = array_unique($existingList['styles']);
502
$existingList['scripts'] = array_unique($existingList['scripts']);
503
504
- update_option( WPACU_PLUGIN_ID . '_global_unload', json_encode($existingList));
505
}
506
507
/**
@@ -569,7 +563,7 @@ HTML;
569
}
570
571
if ($isUpdated) {
572
- update_option( WPACU_PLUGIN_ID . '_global_unload', json_encode($existingList));
573
}
574
}
575
@@ -590,11 +584,8 @@ HTML;
590
return;
591
}
592
593
- $postStyles = (isset($_POST['wpacu_bulk_unload_styles']) && is_array($_POST['wpacu_bulk_unload_styles']))
594
- ? $_POST['wpacu_bulk_unload_styles'] : array();
595
-
596
- $postScripts = (isset($_POST['wpacu_bulk_unload_scripts']) && is_array($_POST['wpacu_bulk_unload_scripts']))
597
- ? $_POST['wpacu_bulk_unload_scripts'] : array();
598
599
// Is there any entry already in JSON format?
600
$existingListJson = get_option( WPACU_PLUGIN_ID . '_bulk_unload');
@@ -644,7 +635,7 @@ HTML;
644
}
645
}
646
647
- update_option( WPACU_PLUGIN_ID . '_bulk_unload', json_encode($existingList));
648
}
649
650
/**
@@ -724,7 +715,7 @@ HTML;
724
}
725
}
726
727
- update_option( WPACU_PLUGIN_ID . '_bulk_unload', json_encode($existingList));
728
}
729
730
return $isUpdated;
41
*/
42
public function __construct()
43
{
44
+ $homePageSettingsUpdatedText = __('The homepage\'s settings were updated. Please make sure the homepage\'s cache is cleared (if you\'re using a caching plugin or a server-side caching solution) to immediately have the changes applied for every visitor.'. WPACU_PLUGIN_TEXT_DOMAIN);
45
$this->updateDoneMsg['homepage'] = <<<HTML
46
+ <span class="dashicons dashicons-yes"></span> {$homePageSettingsUpdatedText}
47
HTML;
48
49
+ $pageSettingsUpdatedText = __('This page\'s settings were updated. Please make sure the page\'s cache is cleared (if you\'re using a caching plugin or a server-side caching solution) to immediately have the changes applied for every visitor.', WPACU_PLUGIN_TEXT_DOMAIN);
50
$this->updateDoneMsg['page'] = <<<HTML
51
+ <span class="dashicons dashicons-yes"></span> {$pageSettingsUpdatedText}
52
HTML;
53
}
54
123
// Form submitted from the homepage
124
// e.g. from a page such as latest blog posts, not a static page that was selected as home page)
125
if (! ($postId > 0) && Misc::isHomePage()) {
126
+ $wpacuNoLoadAssets = Misc::getVar('post', WPACU_PLUGIN_ID, array());
127
$this->updateFrontPage($wpacuNoLoadAssets);
128
return;
129
}
144
public function redirectAfterFrontEndUpdate()
145
{
146
// It triggers ONLY on front-end view, when a valid POST request is made
147
+ if (! $this->frontEndUpdateTriggered || is_admin() || ! Misc::getVar('post', 'wpacu_unload_assets_area_loaded')) {
148
return;
149
}
150
207
208
// This is triggered only if the "Asset CleanUp" meta box was loaded with the list of assets
209
// Otherwise, $_POST[WPACU_PLUGIN_ID] will be taken as empty which might be not if there are values in the database
210
+ if (! Misc::getVar('post', 'wpacu_unload_assets_area_loaded')) {
211
return;
212
}
213
223
return;
224
}
225
226
+ $wpacuNoLoadAssets = Misc::getVar('post', WPACU_PLUGIN_ID, array());
227
228
if (is_array($wpacuNoLoadAssets)) {
229
global $wpdb;
270
{
271
// Needed in case the user clicks "Update" on a page without assets retrieved
272
// Avoid resetting the existing values
273
+ if (! Misc::getVar('post', 'wpacu_unload_assets_area_loaded')) {
274
return;
275
}
276
280
281
$jsonNoAssetsLoadList = json_encode($wpacuNoLoadAssets);
282
283
+ Misc::addUpdateOption(WPACU_PLUGIN_ID . '_front_page_no_load', $jsonNoAssetsLoadList);
284
285
// If globally disabled, make exception to load for submitted assets
286
$this->saveLoadExceptions('front_page');
401
update_post_meta($postId, '_' . WPACU_PLUGIN_ID . '_load_exceptions', $jsonLoadExceptions);
402
}
403
} elseif ($type === 'front_page') {
404
+ Misc::addUpdateOption( WPACU_PLUGIN_ID . '_front_page_load_exceptions', $jsonLoadExceptions);
405
}
406
407
}
414
{
415
// Is the "Asset CleanUp: Page Options" meta box not loaded?
416
// Then do not perform any update below
417
+ $pageOptionsMetaBoxLoaded = Misc::getVar('post', 'wpacu_meta_box_page_options_loaded', false);
418
419
if (! $pageOptionsMetaBoxLoaded) {
420
return;
421
}
422
423
+ $pageOptions = Misc::getVar('post', WPACU_PLUGIN_ID.'_page_options', array());
424
425
// In order for the "Apply the selected options" to work
426
// At least one of the checkboxes above have to be enabled
451
* Any global (all pages / everywhere) UNLOADS?
452
* Coming from a POST request
453
*/
454
+ $reqStyles = Misc::getVar('post', 'wpacu_global_unload_styles', array());
455
+ $reqScripts = Misc::getVar('post', 'wpacu_global_unload_scripts', array());
456
457
$this->saveToEverywhereUnloads($reqStyles, $reqScripts);
458
470
public function saveToEverywhereUnloads($reqStyles = array(), $reqScripts = array())
471
{
472
// Is there any entry already in JSON format?
473
+ $existingListJson = get_option(WPACU_PLUGIN_ID . '_global_unload');
474
475
// Default list as array
476
$existingListEmpty = array('styles' => array(), 'scripts' => array());
492
}
493
494
// Make sure all entries are unique (no handle duplicates)
495
+ $existingList['styles'] = array_unique($existingList['styles']);
496
$existingList['scripts'] = array_unique($existingList['scripts']);
497
498
+ Misc::addUpdateOption( WPACU_PLUGIN_ID . '_global_unload', json_encode($existingList));
499
}
500
501
/**
563
}
564
565
if ($isUpdated) {
566
+ Misc::addUpdateOption( WPACU_PLUGIN_ID . '_global_unload', json_encode($existingList));
567
}
568
}
569
584
return;
585
}
586
587
+ $postStyles = Misc::getVar('post', 'wpacu_bulk_unload_styles', array());
588
+ $postScripts = Misc::getVar('post', 'wpacu_bulk_unload_scripts', array());
589
590
// Is there any entry already in JSON format?
591
$existingListJson = get_option( WPACU_PLUGIN_ID . '_bulk_unload');
635
}
636
}
637
638
+ Misc::addUpdateOption( WPACU_PLUGIN_ID . '_bulk_unload', json_encode($existingList));
639
}
640
641
/**
715
}
716
}
717
718
+ Misc::addUpdateOption( WPACU_PLUGIN_ID . '_bulk_unload', json_encode($existingList));
719
}
720
721
return $isUpdated;
early-triggers.php CHANGED
@@ -6,7 +6,8 @@ if (! defined('ABSPATH')) {
6
7
if (! function_exists('assetCleanUpNoLoad')) {
8
/**
9
- * There are special cases when triggering "Asset CleanUp" is not relevant
10
*
11
* @return bool
12
*/
@@ -26,6 +27,21 @@ if (! function_exists('assetCleanUpNoLoad')) {
26
return true;
27
}
28
29
// WordPress Customise Mode
30
if ((isset($_GET['customize_changeset_uuid'], $_GET['customize_theme']) && $_GET['customize_changeset_uuid'] && $_GET['customize_theme'])
31
|| (strpos($_SERVER['REQUEST_URI'],
@@ -33,6 +49,13 @@ if (! function_exists('assetCleanUpNoLoad')) {
33
return true;
34
}
35
36
return false;
37
}
38
- }
6
7
if (! function_exists('assetCleanUpNoLoad')) {
8
/**
9
+ * There are special cases when triggering "Asset CleanUp" plugin is not relevant
10
+ * Thus, for maximum compatibility and backend processing speed, it's better to avoid running any of its code
11
*
12
* @return bool
13
*/
27
return true;
28
}
29
30
+ // 4) Beaver Builder
31
+ if (isset($_GET['fl_builder'])) {
32
+ return true;
33
+ }
34
+
35
+ // 5) Thrive Architect
36
+ if (isset($_GET['action'], $_GET['tve']) && $_GET['action'] === 'architect' && $_GET['tve'] === 'true' && is_admin()) {
37
+ return true;
38
+ }
39
+
40
+ // 6) Page Builder by SiteOrigin
41
+ if (isset($_GET['action'], $_GET['so_live_editor']) && $_GET['action'] === 'edit' && $_GET['so_live_editor'] && is_admin()) {
42
+ return true;
43
+ }
44
+
45
// WordPress Customise Mode
46
if ((isset($_GET['customize_changeset_uuid'], $_GET['customize_theme']) && $_GET['customize_changeset_uuid'] && $_GET['customize_theme'])
47
|| (strpos($_SERVER['REQUEST_URI'],
49
return true;
50
}
51
52
+ // On request: for debugging purposes - e.g. https://yourwebsite.com/?wpacu_no_load
53
+ // Also make sure it's in the REQUEST URI and $_GET wasn't altered incorrectly before it's checked
54
+ // Technically, it will be like Asset CleanUp is not activated: no global settings and unload rules will be applied
55
+ if (array_key_exists('wpacu_no_load', $_GET) && strpos($_SERVER['REQUEST_URI'], 'wpacu_no_load') !== false) {
56
+ return true;
57
+ }
58
+
59
return false;
60
}
61
+ }
readme.txt CHANGED
@@ -4,7 +4,7 @@ Tags: pagespeed, page speed, dequeue, performance, gtmetrix
4
Donate link: https://gabelivan.com/items/wp-asset-cleanup-pro/?utm_source=wp_org_lite&utm_medium=donate
5
Requires at least: 4.4
6
Tested up to: 5.1.1
7
- Stable tag: 1.3.2.5
8
License: GPLv3
9
License URI: http://www.gnu.org/licenses/gpl.html
10
@@ -154,6 +154,16 @@ With the recently released "Test Mode" feature, you can safely unload assets on
154
4. Homepage CSS & JS Management (List sorted by location)
155
156
== Changelog ==
157
= 1.3.2.5 =
158
* Bug Fix: 403 Forbidden error was returned when fetching assets within the Dashboard because of the wrong nonce check
159
* 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
4
Donate link: https://gabelivan.com/items/wp-asset-cleanup-pro/?utm_source=wp_org_lite&utm_medium=donate
5
Requires at least: 4.4
6
Tested up to: 5.1.1
7
+ Stable tag: 1.3.2.6
8
License: GPLv3
9
License URI: http://www.gnu.org/licenses/gpl.html
10
154
4. Homepage CSS & JS Management (List sorted by location)
155
156
== Changelog ==
157
+ = 1.3.2.6 =
158
+ * Prevent plugin from triggering any of its settings when page builders (e.g. Divi, Elementor, Beaver Builder, Oxygen, etc.) are in edit mode for maximum compatibility
159
+ * Compatibility with SG Optimizer plugin
160
+ * Option to prevent plugin to trigger any of its settings & unload rules on request via "wpacu_no_load" query string
161
+ * Do not minify CSS/JS from /wp-content/uploads/ (e.g. files belonging to Elementor or Oxygen page builder plugins)
162
+ * Added more things to "System Info" including settings and browser information
163
+ * Apply relative URLs for combined CSS/JS script/stylesheet tags, if URL opened is via SSL and the WordPress site URL starts with http://
164
+ * Bug Fix: Clear CSS/JS cache was returning a blank white page
165
+ * Bug Fix: Minify JS - Exceptions weren't applied
166
+
167
= 1.3.2.5 =
168
* Bug Fix: 403 Forbidden error was returned when fetching assets within the Dashboard because of the wrong nonce check
169
* 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
templates/_admin-page-getting-started-areas/_benefits-fast-pages.php CHANGED
@@ -6,26 +6,26 @@ if (! isset($data)) {
6
exit;
7
}
8
?>
9
- <p class="area-title">Higher search ranking <span style="font-size: 22px;">📈</span></p>
10
- <p>Since 2010, there has been a signal in Google search ranking algorithms: site speed, which reflects how quickly a website responds to web requests.</p>
11
- <p>Speeding up websites is important — not just to site owners, but to all Internet users. Faster sites create happy users and Google has seen in their internal studies that when a site responds slowly, visitors spend less time there. But faster sites don't just improve user experience; recent data shows that improving site speed also reduces operating costs. Like Google, their users place a lot of value in speed — that's why they've decided to take site speed into account in their search rankings. They use a variety of sources to determine the speed of a site relative to other sites.
12
- <p><span class="dashicons dashicons-video-alt3"></span> <a href="https://www.youtube.com/watch?v=SO4YuDAkplU" target="_blank">How does Google determine page speed?</a></p>
13
<hr />
14
15
- <p class="area-title">Visitor Experience <span style="font-size: 24px;">😊</span></p>
16
- <p>For a customer (it's likely happened to you too) that wants to purchase something online, it's very frustrating to land on slow loading website. A blazing fast website, will keep your visitors happy, engaged, which will directly influence conversions. If a visitor doesn't get what he wants in a time he/she thinks it's reasonable, they will probably head to another website belonging to a competitor. As today's users expect a fast and streamlined web experience, you're losing business if you neglect this often overlooked aspect.</p>
17
<hr />
18
19
- <p class="area-title">Better Developer Experience <span style="font-size: 24px;">⚙️</span></p>
20
- <p>As developers, we often go through the HTML source code of the website, access the server (e.g. Apache, NGINX) logs that has the HTTP requests, and have to sometimes solve code conflict problems (e.g. between plugins) due to poorly written code. By preventing unnecessary files to load, having less HTTP requests, and cleaner HTML code, you will be able to easily go through the code (which is smaller), your log files will take less space on the server, will be easier to backup and analyse, and by having less JavaScript files loading, you will be reduce the changes of getting less JS errors that could interfere with the functionality of your website.</p>
21
<hr />
22
23
- <p class="area-title">Higher Revenue <span style="font-size: 24px;">💯</span></p>
24
- <p>Just about any major retailer is taking site speed as a very important factor for increasing conversions. According to Strangeloop, 57% of online customers will leave a website after waiting 3 seconds for the page to load. Moreover, 80% of those people will not return to that page. Some of them will tell others about their negative experience. This has a direct impact on the conversion rate, revenue and brand image.</p>
25
26
- <p style="margin-bottom: 0;"><em>"78% of users say they've felt STRESS OR ANGER while using a slow website."</em></p>
27
- <p style="margin-top: 5px; margin-bottom: 0;"><em>"44% of users say that slow online transaction make them ANXIOUS about the success of the transaction."</em></p>
28
- <p style="margin-top: 5px;"><em>"4% of people have THROWN THEIR PHONE while using a slow mobile site."</em></p>
29
30
<?php add_thickbox(); ?>
31
<div id="wpacu-brain-slow-website-info" style="display:none;">
@@ -34,4 +34,4 @@ if (! isset($data)) {
34
</div>
35
36
<span class="dashicons dashicons-format-image"></span> <a href="#TB_inline?&width=1024&height=550&inlineId=wpacu-brain-slow-website-info"
37
- class="thickbox">View "This Is Your Brain On A Slow Website" Infographic</a>
6
exit;
7
}
8
?>
9
+ <p class="area-title"><?php _e('Higher search ranking', WPACU_PLUGIN_TEXT_DOMAIN); ?> <span style="font-size: 22px;">📈</span></p>
10
+ <p><?php _e('Since 2010, there has been a signal in Google search ranking algorithms: site speed, which reflects how quickly a website responds to web requests.', WPACU_PLUGIN_TEXT_DOMAIN); ?></p>
11
+ <p><?php _e('Speeding up websites is important — not just to site owners, but to all Internet users.', WPACU_PLUGIN_TEXT_DOMAIN); ?> <?php _e('Faster sites create happy users and Google has seen in their internal studies that when a site responds slowly, visitors spend less time there.', WPACU_PLUGIN_TEXT_DOMAIN); ?> <?php _e('But faster sites don\'t just improve user experience', WPACU_PLUGIN_TEXT_DOMAIN); ?>; <?php _e('recent data shows that improving site speed also reduces operating costs.', WPACU_PLUGIN_TEXT_DOMAIN); ?> <?php _e('Like Google, their users place a lot of value in speed — that\'s why they\'ve decided to take site speed into account in their search rankings. They use a variety of sources to determine the speed of a site relative to other sites.', WPACU_PLUGIN_TEXT_DOMAIN); ?>
12
+ <p><span class="dashicons dashicons-video-alt3"></span> <a href="https://www.youtube.com/watch?v=SO4YuDAkplU" target="_blank"><?php _e('How does Google determine page speed?', WPACU_PLUGIN_TEXT_DOMAIN); ?></a></p>
13
<hr />
14
15
+ <p class="area-title"><?php _e('Visitor Experience', WPACU_PLUGIN_TEXT_DOMAIN); ?> <span style="font-size: 24px;">😊</span></p>
16
+ <p><?php _e('For a customer (it\'s likely happened to you too) that wants to purchase something online, it\'s very frustrating to land on slow loading website.', WPACU_PLUGIN_TEXT_DOMAIN); ?> <?php _e('A blazing fast website, will keep your visitors happy, engaged, which will directly influence conversions.', WPACU_PLUGIN_TEXT_DOMAIN); ?> <?php _e('If a visitor doesn\'t get what he wants in a time he/she thinks it\'s reasonable, they will probably head to another website belonging to a competitor.', WPACU_PLUGIN_TEXT_DOMAIN); ?> <?php _e('As today\'s users expect a fast and streamlined web experience, you\'re losing business if you neglect this often overlooked aspect.', WPACU_PLUGIN_TEXT_DOMAIN); ?></p>
17
<hr />
18
19
+ <p class="area-title"><?php _e('Better Developer Experience', WPACU_PLUGIN_TEXT_DOMAIN); ?> <span style="font-size: 24px;">⚙️</span></p>
20
+ <p><?php _e('As developers, we often go through the HTML source code of the website, access the server (e.g. Apache, NGINX) logs that has the HTTP requests, and have to sometimes solve code conflict problems (e.g. between plugins) due to poorly written code.', WPACU_PLUGIN_TEXT_DOMAIN); ?> <?php _e('By preventing unnecessary files to load, having less HTTP requests, and cleaner HTML code, you will be able to easily go through the code (which is smaller).', WPACU_PLUGIN_TEXT_DOMAIN); ?> <?php _e('Your log files will take less space on the server, will be easier to backup and analyse, and by having less JavaScript files loading, you will be reduce the changes of getting less JS errors that could interfere with the functionality of your website.', WPACU_PLUGIN_TEXT_DOMAIN); ?></p>
21
<hr />
22
23
+ <p class="area-title"><?php _e('Higher Revenue', WPACU_PLUGIN_TEXT_DOMAIN); ?> <span style="font-size: 24px;">💯</span></p>
24
+ <p><?php _e('Just about any major retailer is taking site speed as a very important factor for increasing conversions.', WPACU_PLUGIN_TEXT_DOMAIN); ?> <?php _e('According to Strangeloop, 57% of online customers will leave a website after waiting 3 seconds for the page to load. Moreover, 80% of those people will not return to that page. Some of them will tell others about their negative experience. This has a direct impact on the conversion rate, revenue and brand image.', WPACU_PLUGIN_TEXT_DOMAIN); ?></p>
25
26
+ <p style="margin-bottom: 0;"><em>"<?php echo sprintf(__('%s of users say they\'ve felt STRESS OR ANGER while using a slow website.', WPACU_PLUGIN_TEXT_DOMAIN), '78%'); ?>"</em></p>
27
+ <p style="margin-top: 5px; margin-bottom: 0;"><em>"<?php echo sprintf(__('%s of users say that slow online transaction make them ANXIOUS about the success of the transaction.', WPACU_PLUGIN_TEXT_DOMAIN), '44%'); ?>"</em></p>
28
+ <p style="margin-top: 5px;"><em>"<?php echo sprintf(__('%s of people have THROWN THEIR PHONE while using a slow mobile site.', WPACU_PLUGIN_TEXT_DOMAIN), '4%'); ?>"</em></p>
29
30
<?php add_thickbox(); ?>
31
<div id="wpacu-brain-slow-website-info" style="display:none;">
34
</div>
35
36
<span class="dashicons dashicons-format-image"></span> <a href="#TB_inline?&width=1024&height=550&inlineId=wpacu-brain-slow-website-info"
37
+ class="thickbox"><?php echo sprintf(__('View "%s" Infographic', WPACU_PLUGIN_TEXT_DOMAIN), 'This Is Your Brain On A Slow Website'); ?></a>
templates/_admin-page-getting-started-areas/_how-it-works.php CHANGED
@@ -6,22 +6,28 @@ if (! isset($data)) {
6
exit;
7
}
8
?>
9
- <p>Often, our WordPress websites are loaded with elements that are not needed to load on specific pages or even everywhere. These assets (CSS &amp; JavaScript files) as well as inline code are adding up to the total size of the page, thus taking more time for the page to load.</p>
10
- <p>This could end up in a slow website that leads to page abandonment, poor ranking in Google search and sometimes conflict JavaScript errors where too many scripts are loading and one of them (or more) have poorly written code that is not autonomous and badly interacts with other code.</p>
11
<hr />
12
- <p class="area-title">What Asset CleanUp really does? <span style="font-size: 24px;">🚀</span></p>
13
- <p>Asset CleanUp is a <strong>front-end optimisation performance plugin</strong> and let's you select the assets that are not needed to load on your website and combine the remaining loaded ones into fewer files, which will in the end reduce considerably the number of HTTP requests and optimize the front-end side of your pages. <a target="_blank" href="https://developer.yahoo.com/performance/rules.html">Read more</a></p>
14
<p>Once the setup is completed, the pages will have a better speed score since there will be less HTTP requests (.css &amp; .js files) loaded by the browser (this can be tested using tools such as GTMetrix) and combined with a backend page caching system it will improve the page speed even more.
15
- <p>Page caching solutions include:</p>
16
<ul style="font-size: 14px; list-style: disc; margin-left: 25px;">
17
- <li style="line-height: 21px; margin-bottom: 15px;">A plugin such as <a target="_blank" href="https://gabelivan.com/visit/wp-rocket">WP Rocket</a> (get 20% off by using the <em>IMAGIFY20</em> coupon code) that creates static HTML files (which are lighter thanks to Asset CleanUp) and reads them avoiding PHP code processing within the active plugins &amp; theme, including database queries which can use lots of server resources if you have high traffic. The page caching improves the <a href="http://gabelivan.com/visit/wp-rocket-ttfb">TTFB</a> (time to first byte) which measures the duration from the user or client making an HTTP request to the first byte of the page being received by the client's browser.</li>
18
- <li style="line-height: 21px; margin-bottom: 20px;">A hosting service that has its in-built WordPress caching like <a href="https://gabelivan.com/visit/wp-engine">WPEngine</a> or Kinsta, a web application accelerator like Varnish that can be setup the server etc.</li>
19
</ul>
20
21
- <p style="line-height: normal;"><small><strong>Disclaimer:</strong> The recommendations above are based from my own experience as a developer &amp; user and I'm happy to recommend them to whoever wants superior WordPress performance. The links are affiliate related and I might get a commission if you decide to make a purchase.</small></p>
22
<hr />
23
<p class="area-title">Example (Stripping ~66% of "crap") <span style="font-size: 24px;">✨</span></p>
24
<p>Let's suppose you have a page where 30 files (CSS &amp; JS) are loaded. All have a total size of 1.5 MB. Using Asset CleanUp, you can reduce the number to 12 files by unloading the other 18 files which are useless on the page. You've reduced the total size to 0.7 MB, this resulting in less time in downloading the assets, thus the page will load faster. If you also combine and minify the remaining 12 files, the total assets size becomes smaller to 0.5 MB. In the end, <strong>the assets will load 3 times faster and improve your page speed score</strong>. Moreover, the HTML source code will be cleaner and easier to go through in case you're a developer and need to do any debugging or just check something in the code.</p>
25
<hr />
26
- <p class="area-title">Not sure how to configure it? <span style="font-size: 24px;">🤔</span></p>
27
- <p>No problem! You can enable "Test Mode" and any changes you make, will only be visible for you (the logged-in administrator), while the regular visitors will see the pages as if the plugin is not active. Once all is good, you can disable "Test Mode" (thus applying the settings to everyone), clear the page caching (if using a plugin or a server-side solution such as Varnish) and check out the page speed score. <a target="_blank" href="https://assetcleanup.com/docs/?p=84">Read more</a></p>
6
exit;
7
}
8
?>
9
+ <p><?php _e('Often, our WordPress websites are loaded with elements that are not needed to load on specific pages or even everywhere.', WPACU_PLUGIN_TEXT_DOMAIN); ?> <?php _e('These assets (CSS &amp; JavaScript files) as well as inline code are adding up to the total size of the page, thus taking more time for the page to load.', WPACU_PLUGIN_TEXT_DOMAIN); ?></p>
10
+ <p><?php _e('This could end up in a slow website that leads to page abandonment, poor ranking in Google search and sometimes conflict JavaScript errors where too many scripts are loading and one of them (or more) have poorly written code that is not autonomous and badly interacts with other code.', WPACU_PLUGIN_TEXT_DOMAIN); ?></p>
11
<hr />
12
+ <p class="area-title"><?php __('What Asset CleanUp really does?', WPACU_PLUGIN_TEXT_DOMAIN); ?> <span style="font-size: 24px;">🚀</span></p>
13
+ <p>Asset CleanUp is a <strong>front-end optimisation performance plugin</strong> and let's you select the assets that are not needed to load on your website and combine the remaining loaded ones into fewer files, which will in the end reduce considerably the number of HTTP requests and optimize the front-end side of your pages. <a target="_blank" href="https://developer.yahoo.com/performance/rules.html"><?php _e('Read more', WPACU_PLUGIN_TEXT_DOMAIN); ?></a></p>
14
<p>Once the setup is completed, the pages will have a better speed score since there will be less HTTP requests (.css &amp; .js files) loaded by the browser (this can be tested using tools such as GTMetrix) and combined with a backend page caching system it will improve the page speed even more.
15
+ <p><?php _e('Page caching solutions include', WPACU_PLUGIN_TEXT_DOMAIN); ?>:</p>
16
<ul style="font-size: 14px; list-style: disc; margin-left: 25px;">
17
+ <li style="line-height: 21px; margin-bottom: 15px;">A plugin such as <a target="_blank" href="https://gabelivan.com/visit/wp-rocket">WP Rocket</a> (get 20% off by using the <em>IMAGIFY20</em> coupon code) that creates static HTML files (which are lighter thanks to Asset CleanUp) and reads them avoiding PHP code processing within the active plugins &amp; theme, including database queries which can use lots of server resources if you have high traffic. <?php echo sprintf(__('The page caching improves the %sTTFB%s (time to first byte) which measures the duration from the user or client making an HTTP request to the first byte of the page being received by the client\'s browser.', WPACU_PLUGIN_TEXT_DOMAIN), '<a href="http://gabelivan.com/visit/wp-rocket-ttfb">', '</a>'); ?></li>
18
+ <li style="line-height: 21px; margin-bottom: 20px;">
19
+ <?php echo sprintf(
20
+ __('A hosting service that has its in-built WordPress caching like %sWPEngine%s or Kinsta, a web application accelerator like Varnish that can be setup the server etc.', WPACU_PLUGIN_TEXT_DOMAIN),
21
+ '<a href="https://gabelivan.com/visit/wp-engine">',
22
+ '</a>'
23
+ ); ?>
24
+ </li>
25
</ul>
26
27
+ <p style="line-height: normal;"><small><strong><?php _e('Disclaimer', WPACU_PLUGIN_TEXT_DOMAIN); ?>:</strong> <?php _e('The recommendations above are based from my own experience as a developer &amp; user and I\'m happy to recommend them to whoever wants superior WordPress performance.', WPACU_PLUGIN_TEXT_DOMAIN); ?> <?php _e('The links are affiliate related and I might get a commission if you decide to make a purchase.', WPACU_PLUGIN_TEXT_DOMAIN); ?></small></p>
28
<hr />
29
<p class="area-title">Example (Stripping ~66% of "crap") <span style="font-size: 24px;">✨</span></p>
30
<p>Let's suppose you have a page where 30 files (CSS &amp; JS) are loaded. All have a total size of 1.5 MB. Using Asset CleanUp, you can reduce the number to 12 files by unloading the other 18 files which are useless on the page. You've reduced the total size to 0.7 MB, this resulting in less time in downloading the assets, thus the page will load faster. If you also combine and minify the remaining 12 files, the total assets size becomes smaller to 0.5 MB. In the end, <strong>the assets will load 3 times faster and improve your page speed score</strong>. Moreover, the HTML source code will be cleaner and easier to go through in case you're a developer and need to do any debugging or just check something in the code.</p>
31
<hr />
32
+ <p class="area-title"><?php _e('Not sure how to configure it?', WPACU_PLUGIN_TEXT_DOMAIN); ?> <span style="font-size: 24px;">🤔</span></p>
33
+ <p><?php _e('No problem!', WPACU_PLUGIN_TEXT_DOMAIN); ?> <?php _e('You can enable "Test Mode" and any changes you make, will only be visible for you (the logged-in administrator), while the regular visitors will see the pages as if the plugin is not active.', WPACU_PLUGIN_TEXT_DOMAIN); ?> <?php _e('Once all is good, you can disable "Test Mode" (thus applying the settings to everyone), clear the page caching (if using a plugin or a server-side solution such as Varnish) and check out the page speed score.', WPACU_PLUGIN_TEXT_DOMAIN); ?> <a target="_blank" href="https://assetcleanup.com/docs/?p=84"><?php _e('Read more', WPACU_PLUGIN_TEXT_DOMAIN); ?></a></p>
templates/_admin-page-getting-started-areas/_lite-vs-pro.php CHANGED
@@ -21,90 +21,90 @@ HTML;
21
</thead>
22
<tbody>
23
<tr>
24
- <td><strong>Yearly Price</strong></td>
25
<td><span class="txt-top">lt;/span><span class="txt-l">0</span></td>
26
<td><span class="txt-top">lt;/span><span class="txt-l">39</span></td>
27
</tr>
28
<tr>
29
- <td>Manage CSS &amp; JavaScript files on Homepage, Posts, Pages &amp; Custom Post Types (e.g. WooCommerce product pages, Easy Digital Downloads download items)</td>
30
<td><?php echo $svgTick; ?></td>
31
<td><?php echo $svgTick; ?></td>
32
</tr>
33
<tr>
34
- <td>Bulk Unloads: Everywhere (Site-Wide), On Specific Pages &amp; Post Types, Add load exceptions</td>
35
<td><?php echo $svgTick; ?></td>
36
<td><?php echo $svgTick; ?></td>
37
</tr>
38
<tr>
39
- <td>Manage the CSS &amp; JavaScript files within the Dashboard (default) and Front-end view (bottom of the page) if chosen</td>
40
<td><?php echo $svgTick; ?></td>
41
<td><?php echo $svgTick; ?></td>
42
</tr>
43
<tr>
44
- <td>Enable "Test Mode" to only apply the plugin's changes for the logged-in administrator for debugging purposes</td>
45
<td><?php echo $svgTick; ?></td>
46
<td><?php echo $svgTick; ?></td>
47
</tr>
48
<tr>
49
- <td>Minify remaining loaded CSS &amp; JavaScript files (with option to add exceptions)</td>
50
<td><?php echo $svgTick; ?></td>
51
<td><?php echo $svgTick; ?></td>
52
</tr>
53
<tr>
54
- <td>Combine remaining loaded CSS &amp; JavaScript files into fewer files from each <code>&lt;HEAD&gt;</code> and <code>&lt;BODY&gt;</code> location (with option to add exceptions)</td>
55
<td><?php echo $svgTick; ?></td>
56
<td><?php echo $svgTick; ?></td>
57
</tr>
58
<tr>
59
- <td>Remove unused elements from the <code>&lt;HEAD&gt;</code> and <code>&lt;BODY&gt;</code> including the following link tags: Really Simple Discovery (RSD), Windows Live Writer, REST API, Posts/Pages Shortlink, Post's Relational, WordPress Generators (also good for security), RSS Feed Links. Valid HTML comments are also stripped (exceptions can be added) while conditional Internet Explorer comments are preserved.</td>
60
<td><?php echo $svgTick; ?></td>
61
<td><?php echo $svgTick; ?></td>
62
</tr>
63
64
<tr>
65
- <td>Site-Wide Unload For Common Elements that are often unused such as: WordPress Emojis, jQuery Migrate, Comment Reply (if not using WP as a blog)</td>
66
<td><?php echo $svgTick; ?></td>
67
<td><?php echo $svgTick; ?></td>
68
</tr>
69
70
<tr>
71
- <td>Disable XML-RPC Protocol Support partially or completely</td>
72
<td><?php echo $svgTick; ?></td>
73
<td><?php echo $svgTick; ?></td>
74
</tr>
75
76
<tr>
77
- <td>Manage CSS &amp; JavaScript files on Categories, Tags, Custom Taxonomy pages, Date &amp; Author Archive Pages, Search Results &amp; 404 Not Found pages</td>
78
<td><span class="na">❌</span></td>
79
<td><?php echo $svgTick; ?></td>
80
</tr>
81
<tr>
82
- <td>Move CSS &amp; JavaScript files from <code>&lt;HEAD&gt;</code> to <code>&lt;BODY&gt;</code> (to reduce render-blocking) or vice-versa (for very early triggering)</td>
83
<td><span class="na">❌</span></td>
84
<td><?php echo $svgTick; ?></td>
85
</tr>
86
<tr>
87
- <td>Apply "async" and "defer" attributes to loaded JavaScript files</td>
88
<td><span class="na">❌</span></td>
89
<td><?php echo $svgTick; ?></td>
90
</tr>
91
<tr>
92
- <td>Show the file sizes for each loaded CSS &amp; JavaScript file including external ones</td>
93
<td><span class="na">❌</span></td>
94
<td><?php echo $svgTick; ?></td>
95
</tr>
96
<tr>
97
- <td>Priority Customer Support</td>
98
<td><span class="na">❌</span></td>
99
<td><?php echo $svgTick; ?></td>
100
</tr>
101
<tr>
102
<td colspan="3" style="text-align: center; padding: 10px;">
103
<a class="button button-primary button-hero" href="<?php echo WPACU_PLUGIN_GO_PRO_URL; ?>?utm_source=plugin_getting_started&utm_medium=lite_vs_pro">
104
- <span class="dashicons dashicons-star-filled" style="line-height: inherit;"></span> &nbsp;Upgrade to Pro to unlock all benefits</a>
105
&nbsp;
106
<a class="button button-default button-hero" href="https://gabelivan.com/contact/">
107
- <span class="dashicons dashicons-admin-comments" style="line-height: inherit;"></span> &nbsp;I have some questions</a>
108
</td>
109
</tr>
110
</tbody>
21
</thead>
22
<tbody>
23
<tr>
24
+ <td><strong><?php _e('Yearly Price', WPACU_PLUGIN_TEXT_DOMAIN); ?></strong></td>
25
<td><span class="txt-top">lt;/span><span class="txt-l">0</span></td>
26
<td><span class="txt-top">lt;/span><span class="txt-l">39</span></td>
27
</tr>
28
<tr>
29
+ <td><?php _e('Manage CSS &amp; JavaScript files on Homepage, Posts, Pages &amp; Custom Post Types (e.g. WooCommerce product pages, Easy Digital Downloads download items)', WPACU_PLUGIN_TEXT_DOMAIN); ?></td>
30
<td><?php echo $svgTick; ?></td>
31
<td><?php echo $svgTick; ?></td>
32
</tr>
33
<tr>
34
+ <td><?php _e('Bulk Unloads: Everywhere (Site-Wide), On Specific Pages &amp; Post Types, Add load exceptions', WPACU_PLUGIN_TEXT_DOMAIN); ?></td>
35
<td><?php echo $svgTick; ?></td>
36
<td><?php echo $svgTick; ?></td>
37
</tr>
38
<tr>
39
+ <td><?php _e('Manage the CSS &amp; JavaScript files within the Dashboard (default) and Front-end view (bottom of the page) if chosen', WPACU_PLUGIN_TEXT_DOMAIN); ?></td>
40
<td><?php echo $svgTick; ?></td>
41
<td><?php echo $svgTick; ?></td>
42
</tr>
43
<tr>
44
+ <td><?php _e('Enable "Test Mode" to only apply the plugin\'s changes for the logged-in administrator for debugging purposes', WPACU_PLUGIN_TEXT_DOMAIN); ?></td>
45
<td><?php echo $svgTick; ?></td>
46
<td><?php echo $svgTick; ?></td>
47
</tr>
48
<tr>
49
+ <td><?php _e('Minify remaining loaded CSS &amp; JavaScript files (with option to add exceptions)', WPACU_PLUGIN_TEXT_DOMAIN); ?></td>
50
<td><?php echo $svgTick; ?></td>
51
<td><?php echo $svgTick; ?></td>
52
</tr>
53
<tr>
54
+ <td><?php _e('Combine remaining loaded CSS &amp; JavaScript files into fewer files from each <code>&lt;HEAD&gt;</code> and <code>&lt;BODY&gt;</code> location (with option to add exceptions)', WPACU_PLUGIN_TEXT_DOMAIN); ?></td>
55
<td><?php echo $svgTick; ?></td>
56
<td><?php echo $svgTick; ?></td>
57
</tr>
58
<tr>
59
+ <td><?php echo sprintf(__('Remove unused elements from the <code>&lt;HEAD&gt;</code> and <code>&lt;BODY&gt;</code> including the following link tags: %s.', WPACU_PLUGIN_TEXT_DOMAIN), 'Really Simple Discovery (RSD), Windows Live Writer, REST API, Posts/Pages Shortlink, Post\'s Relational, WordPress Generators (also good for security), RSS Feed Links'); ?> <?php _e('Valid HTML comments are also stripped (exceptions can be added) while conditional Internet Explorer comments are preserved.', WPACU_PLUGIN_TEXT_DOMAIN); ?></td>
60
<td><?php echo $svgTick; ?></td>
61
<td><?php echo $svgTick; ?></td>
62
</tr>
63
64
<tr>
65
+ <td><?php _e('Site-Wide Unload For Common Elements that are often unused such as: WordPress Emojis, jQuery Migrate, Comment Reply (if not using WP as a blog)', WPACU_PLUGIN_TEXT_DOMAIN); ?></td>
66
<td><?php echo $svgTick; ?></td>
67
<td><?php echo $svgTick; ?></td>
68
</tr>
69
70
<tr>
71
+ <td><?php _e('Disable XML-RPC Protocol Support partially or completely', WPACU_PLUGIN_TEXT_DOMAIN); ?></td>
72
<td><?php echo $svgTick; ?></td>
73
<td><?php echo $svgTick; ?></td>
74
</tr>
75
76
<tr>
77
+ <td><?php _e('Manage CSS &amp; JavaScript files on Categories, Tags, Custom Taxonomy pages, Date &amp; Author Archive Pages, Search Results &amp; 404 Not Found pages', WPACU_PLUGIN_TEXT_DOMAIN); ?></td>
78
<td><span class="na">❌</span></td>
79
<td><?php echo $svgTick; ?></td>
80
</tr>
81
<tr>
82
+ <td><?php _e('Move CSS &amp; JavaScript files from <code>&lt;HEAD&gt;</code> to <code>&lt;BODY&gt;</code> (to reduce render-blocking) or vice-versa (for very early triggering)', WPACU_PLUGIN_TEXT_DOMAIN); ?></td>
83
<td><span class="na">❌</span></td>
84
<td><?php echo $svgTick; ?></td>
85
</tr>
86
<tr>
87
+ <td><?php _e('Apply "async" and "defer" attributes to loaded JavaScript files', WPACU_PLUGIN_TEXT_DOMAIN); ?></td>
88
<td><span class="na">❌</span></td>
89
<td><?php echo $svgTick; ?></td>
90
</tr>
91
<tr>
92
+ <td><?php _e('Show the file sizes for each loaded CSS &amp; JavaScript file including external ones', WPACU_PLUGIN_TEXT_DOMAIN); ?></td>
93
<td><span class="na">❌</span></td>
94
<td><?php echo $svgTick; ?></td>
95
</tr>
96
<tr>
97
+ <td><?php _e('Priority Customer Support', WPACU_PLUGIN_TEXT_DOMAIN); ?></td>
98
<td><span class="na">❌</span></td>
99
<td><?php echo $svgTick; ?></td>
100
</tr>
101
<tr>
102
<td colspan="3" style="text-align: center; padding: 10px;">
103
<a class="button button-primary button-hero" href="<?php echo WPACU_PLUGIN_GO_PRO_URL; ?>?utm_source=plugin_getting_started&utm_medium=lite_vs_pro">
104
+ <span class="dashicons dashicons-star-filled" style="line-height: inherit;"></span> &nbsp;<?php _e('Upgrade to Pro to unlock all benefits', WPACU_PLUGIN_TEXT_DOMAIN); ?></a>
105
&nbsp;
106
<a class="button button-default button-hero" href="https://gabelivan.com/contact/">
107
+ <span class="dashicons dashicons-admin-comments" style="line-height: inherit;"></span> &nbsp;<?php _e('I have some questions', WPACU_PLUGIN_TEXT_DOMAIN); ?></a>
108
</td>
109
</tr>
110
</tbody>
templates/_admin-page-getting-started-areas/_start-optimization.php CHANGED
@@ -8,7 +8,7 @@ if (! isset($data)) {
8
?>
9
<p>For the <em>homepage</em>, you can go to "Asset CleanUp" -&gt; "<a href="<?php echo admin_url('admin.php?page='.WPACU_PLUGIN_ID.'_assets_manager') ?>">Homepage</a>" from the plugin's menu and you will notice the list of all the styles &amp;scripts files that are loading there. For each file, you will see options that you can enabled/disable.</p>
10
<p>For <em>posts, pages &amp; custom post types</em>, you can edit the page within the Dashboard or via the front-end view (if you enabled the option in "Settings") and go to "Asset CleanUp" area where you can manage all the CSS &amp; JS files loading on that post/page.</p>
11
- <p>To view all the pages where Asset CleanUp can do optimization for, go to "<a href="<?php echo admin_url('admin.php?page='.WPACU_PLUGIN_ID.'_assets_manager&wpacu_for=all_other_pages'); ?>">Pages Info</a>".</p>
12
<hr />
13
14
<p style="font-size: 16px;"><strong>Common Example: "Contact Form 7" plugin</strong></p>
8
?>
9
<p>For the <em>homepage</em>, you can go to "Asset CleanUp" -&gt; "<a href="<?php echo admin_url('admin.php?page='.WPACU_PLUGIN_ID.'_assets_manager') ?>">Homepage</a>" from the plugin's menu and you will notice the list of all the styles &amp;scripts files that are loading there. For each file, you will see options that you can enabled/disable.</p>
10
<p>For <em>posts, pages &amp; custom post types</em>, you can edit the page within the Dashboard or via the front-end view (if you enabled the option in "Settings") and go to "Asset CleanUp" area where you can manage all the CSS &amp; JS files loading on that post/page.</p>
11
+ <p>To view all the pages where Asset CleanUp can do optimization for, go to "<a href="<?php echo admin_url('admin.php?page='.WPACU_PLUGIN_ID.'_assets_manager&wpacu_for=all_other_pages'); ?>"><?php _e('Pages Info', WPACU_PLUGIN_TEXT_DOMAIN); ?></a>".</p>
12
<hr />
13
14
<p style="font-size: 16px;"><strong>Common Example: "Contact Form 7" plugin</strong></p>
templates/_admin-page-settings-bulk-changes/_bulk-unloaded.php CHANGED
@@ -7,13 +7,13 @@ if (! isset($data)) {
7
}
8
9
// [wpacu_lite]
10
- $availableForPro = '<span class="wpacu-tooltip">Available for Pro users<br />Click to upgrade!</span> <img style="opacity: 0.4;" width="20" height="20" src="'.WPACU_PLUGIN_URL.'/assets/icons/icon-lock.svg" valign="top" alt="" />';
11
// [/wpacu_lite]
12
?>
13
- <p>This page collects all the assets that have bulk rules such as <em>"Unload everywhere"</em> or <em>"Unload on All Pages of <strong>post</strong> post type"</em> etc. Although, you can manage them when editing a page, post etc., this page will make it easier for you to view them in one place. Note that a bulk unload is considered anything that is applied once and it has effect on multiple pages of the same kind or site-wide.</>
14
15
<nav class="nav-tab-wrapper">
16
- <a href="<?php echo admin_url('admin.php?page=wpassetcleanup_bulk_unloads'); ?>" class="nav-tab <?php if ($data['for'] === 'everywhere') { ?>nav-tab-active<?php } ?>">Everywhere</a>
17
<a href="<?php echo admin_url('admin.php?page=wpassetcleanup_bulk_unloads&wpacu_for=post_types'); ?>" class="nav-tab <?php if ($data['for'] === 'post_types') { ?>nav-tab-active<?php } ?>">Posts, Pages &amp; Custom Post Types</a>
18
<a href="<?php echo WPACU_PLUGIN_GO_PRO_URL; ?>?utm_source=plugin_bulk_unloaded&utm_medium=tab_link" target="_blank" class="nav-tab go-pro-link-no-style no-transition"><?php echo $availableForPro; ?> &nbsp;Taxonomies</a>
19
<a href="<?php echo WPACU_PLUGIN_GO_PRO_URL; ?>?utm_source=plugin_bulk_unloaded&utm_medium=tab_link" target="_blank" class="nav-tab go-pro-link-no-style no-transition"><?php echo $availableForPro; ?> &nbsp;Authors</a>
@@ -34,7 +34,7 @@ if ($data['for'] === 'post_types') {
34
<input type="hidden" name="page" value="wpassetcleanup_bulk_unloads" />
35
<input type="hidden" name="wpacu_for" value="post_types" />
36
37
- <div style="margin: 0 0 10px 0;">Select the page or post type (including custom ones) for which you want to see the unloaded scripts &amp; styles:</div>
38
<select id="wpacu_post_type_select" name="wpacu_post_type">
39
<?php foreach ($data['post_types_list'] as $postTypeKey => $postTypeValue) { ?>
40
<option <?php if ($data['post_type'] === $postTypeKey) { echo 'selected="selected"'; } ?> value="<?php echo $postTypeKey; ?>"><?php echo $postTypeValue; ?></option>
@@ -66,14 +66,14 @@ if ($data['for'] === 'post_types') {
66
<div class="wpacu-clearfix"></div>
67
68
<div style="padding: 0 10px 0 0;">
69
- <h3>Styles</h3>
70
<?php
71
if (! empty($data['values']['styles'])) {
72
?>
73
<table class="wp-list-table widefat fixed striped">
74
<tr>
75
<td><strong>Handle</strong></td>
76
- <td><strong>Actions</strong></td>
77
</tr>
78
<?php
79
foreach ($data['values']['styles'] as $handle) {
@@ -94,19 +94,19 @@ if ($data['for'] === 'post_types') {
94
<?php
95
} else {
96
?>
97
- <p>There are no site-wide unloaded styles.</p>
98
<?php
99
}
100
?>
101
102
- <h3>Scripts</h3>
103
<?php
104
if (! empty($data['values']['scripts'])) {
105
?>
106
<table class="wp-list-table widefat fixed striped">
107
<tr>
108
<td><strong>Handle</strong></td>
109
- <td><strong>Actions</strong></td>
110
</tr>
111
<?php
112
foreach ($data['values']['scripts'] as $handle) {
@@ -117,7 +117,7 @@ if ($data['for'] === 'post_types') {
117
<label><input type="checkbox"
118
class="wpacu_remove_rule"
119
name="wpacu_options_scripts[<?php echo $handle; ?>]"
120
- value="remove" /> Remove rule</label>
121
</td>
122
</tr>
123
<?php
@@ -127,7 +127,7 @@ if ($data['for'] === 'post_types') {
127
<?php
128
} else {
129
?>
130
- <p>There are no site-wide unloaded scripts.</p>
131
<?php
132
}
133
?>
@@ -151,14 +151,14 @@ if ($data['for'] === 'post_types') {
151
<div class="wpacu-clearfix"></div>
152
153
<div style="padding: 0 10px 0 0;">
154
- <h3>Styles</h3>
155
<?php
156
if (! empty($data['values']['styles'])) {
157
?>
158
<table class="wp-list-table widefat fixed striped">
159
<tr>
160
<td><strong>Handle</strong></td>
161
- <td><strong>Actions</strong></td>
162
</tr>
163
<?php
164
foreach ($data['values']['styles'] as $handle) {
@@ -169,7 +169,7 @@ if ($data['for'] === 'post_types') {
169
<label><input type="checkbox"
170
class="wpacu_remove_rule"
171
name="wpacu_options_post_type_styles[<?php echo $handle; ?>]"
172
- value="remove" /> Remove rule</label>
173
</td>
174
</tr>
175
<?php
@@ -184,14 +184,14 @@ if ($data['for'] === 'post_types') {
184
}
185
?>
186
187
- <h3>Scripts</h3>
188
<?php
189
if (! empty($data['values']['scripts'])) {
190
?>
191
<table class="wp-list-table widefat fixed striped">
192
<tr>
193
<td><strong>Handle</strong></td>
194
- <td><strong>Actions</strong></td>
195
</tr>
196
<?php
197
foreach ($data['values']['scripts'] as $handle) {
@@ -202,7 +202,7 @@ if ($data['for'] === 'post_types') {
202
<label><input type="checkbox"
203
class="wpacu_remove_rule"
204
name="wpacu_options_post_type_scripts[<?php echo $handle; ?>]"
205
- value="remove" /> Remove rule</label>
206
</td>
207
</tr>
208
<?php
@@ -252,7 +252,7 @@ if ($data['for'] === 'post_types') {
252
<?php
253
if ($noAssetsToRemove) {
254
?>
255
- &nbsp;<small>Note: As there are no unloaded assets (scripts &amp; styles) to be managed, the button is disabled.</small>
256
<?php
257
}
258
?>
7
}
8
9
// [wpacu_lite]
10
+ $availableForPro = '<span class="wpacu-tooltip">'.__('Available for Pro users', WPACU_PLUGIN_TEXT_DOMAIN).'<br />'.__('Click to upgrade!', WPACU_PLUGIN_TEXT_DOMAIN).'</span> <img style="opacity: 0.4;" width="20" height="20" src="'.WPACU_PLUGIN_URL.'/assets/icons/icon-lock.svg" valign="top" alt="" />';
11
// [/wpacu_lite]
12
?>
13
+ <p>This page collects all the assets that have bulk rules such as <em>"Unload everywhere"</em> or <em>"Unload on All Pages of <strong>post</strong> post type"</em> etc. Although, you can manage them when editing a page, post etc., this page will make it easier for you to view them in one place. Note that a bulk unload is considered anything that is applied once and it has effect on multiple pages of the same kind or site-wide.</p>
14
15
<nav class="nav-tab-wrapper">
16
+ <a href="<?php echo admin_url('admin.php?page=wpassetcleanup_bulk_unloads'); ?>" class="nav-tab <?php if ($data['for'] === 'everywhere') { ?>nav-tab-active<?php } ?>"><?php _e('Everywhere', WPACU_PLUGIN_TEXT_DOMAIN); ?></a>
17
<a href="<?php echo admin_url('admin.php?page=wpassetcleanup_bulk_unloads&wpacu_for=post_types'); ?>" class="nav-tab <?php if ($data['for'] === 'post_types') { ?>nav-tab-active<?php } ?>">Posts, Pages &amp; Custom Post Types</a>
18
<a href="<?php echo WPACU_PLUGIN_GO_PRO_URL; ?>?utm_source=plugin_bulk_unloaded&utm_medium=tab_link" target="_blank" class="nav-tab go-pro-link-no-style no-transition"><?php echo $availableForPro; ?> &nbsp;Taxonomies</a>
19
<a href="<?php echo WPACU_PLUGIN_GO_PRO_URL; ?>?utm_source=plugin_bulk_unloaded&utm_medium=tab_link" target="_blank" class="nav-tab go-pro-link-no-style no-transition"><?php echo $availableForPro; ?> &nbsp;Authors</a>
34
<input type="hidden" name="page" value="wpassetcleanup_bulk_unloads" />
35
<input type="hidden" name="wpacu_for" value="post_types" />
36
37
+ <div style="margin: 0 0 10px 0;"><?php _e('Select the page or post type (including custom ones) for which you want to see the unloaded scripts &amp; styles', WPACU_PLUGIN_TEXT_DOMAIN); ?>:</div>
38
<select id="wpacu_post_type_select" name="wpacu_post_type">
39
<?php foreach ($data['post_types_list'] as $postTypeKey => $postTypeValue) { ?>
40
<option <?php if ($data['post_type'] === $postTypeKey) { echo 'selected="selected"'; } ?> value="<?php echo $postTypeKey; ?>"><?php echo $postTypeValue; ?></option>
66
<div class="wpacu-clearfix"></div>
67
68
<div style="padding: 0 10px 0 0;">
69
+ <h3><?php _e('Styles', WPACU_PLUGIN_TEXT_DOMAIN); ?></h3>
70
<?php
71
if (! empty($data['values']['styles'])) {
72
?>
73
<table class="wp-list-table widefat fixed striped">
74
<tr>
75
<td><strong>Handle</strong></td>
76
+ <td><strong><?php _e('Actions', WPACU_PLUGIN_TEXT_DOMAIN); ?></strong></td>
77
</tr>
78
<?php
79
foreach ($data['values']['styles'] as $handle) {
94
<?php
95
} else {
96
?>
97
+ <p><?php _e('There are no site-wide unloaded styles.', WPACU_PLUGIN_TEXT_DOMAIN); ?></p>
98
<?php
99
}
100
?>
101
102
+ <h3><?php _e('Scripts', WPACU_PLUGIN_TEXT_DOMAIN); ?></h3>
103
<?php
104
if (! empty($data['values']['scripts'])) {
105
?>
106
<table class="wp-list-table widefat fixed striped">
107
<tr>
108
<td><strong>Handle</strong></td>
109
+ <td><strong><?php _e('Actions', WPACU_PLUGIN_TEXT_DOMAIN); ?></strong></td>
110
</tr>
111
<?php
112
foreach ($data['values']['scripts'] as $handle) {
117
<label><input type="checkbox"
118
class="wpacu_remove_rule"
119
name="wpacu_options_scripts[<?php echo $handle; ?>]"
120
+ value="remove" /> <?php _e('Remove rule', WPACU_PLUGIN_TEXT_DOMAIN); ?></label>
121
</td>
122
</tr>
123
<?php
127
<?php
128
} else {
129
?>
130
+ <p><?php _e('There are no site-wide unloaded scripts.', WPACU_PLUGIN_TEXT_DOMAIN); ?></p>
131
<?php
132
}
133
?>
151
<div class="wpacu-clearfix"></div>
152
153
<div style="padding: 0 10px 0 0;">
154
+ <h3><?php _e('Styles', WPACU_PLUGIN_TEXT_DOMAIN); ?></h3>
155
<?php
156
if (! empty($data['values']['styles'])) {
157
?>
158
<table class="wp-list-table widefat fixed striped">
159
<tr>
160
<td><strong>Handle</strong></td>
161
+ <td><strong><?php _e('Actions', WPACU_PLUGIN_TEXT_DOMAIN); ?></strong></td>
162
</tr>
163
<?php
164
foreach ($data['values']['styles'] as $handle) {
169
<label><input type="checkbox"
170
class="wpacu_remove_rule"
171
name="wpacu_options_post_type_styles[<?php echo $handle; ?>]"
172
+ value="remove" /> <?php _e('Remove rule', WPACU_PLUGIN_TEXT_DOMAIN); ?></label>
173
</td>
174
</tr>
175
<?php
184
}
185
?>
186
187
+ <h3><?php _e('Scripts', WPACU_PLUGIN_TEXT_DOMAIN); ?></h3>
188
<?php
189
if (! empty($data['values']['scripts'])) {
190
?>
191
<table class="wp-list-table widefat fixed striped">
192
<tr>
193
<td><strong>Handle</strong></td>
194
+ <td><strong><?php _e('Actions', WPACU_PLUGIN_TEXT_DOMAIN); ?></strong></td>
195
</tr>
196
<?php
197
foreach ($data['values']['scripts'] as $handle) {
202
<label><input type="checkbox"