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">$</span><span class="txt-l">0</span></td>
26
  <td><span class="txt-top">$</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">$</span><span class="txt-l">0</span></td>
26
  <td><span class="txt-top">$</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"
203
  class="wpacu_remove_rule"
204
  name="wpacu_options_post_type_scripts[<?php echo $handle; ?>]"
205
+ value="remove" /> <?php _e('Remove rule', WPACU_PLUGIN_TEXT_DOMAIN); ?></label>
206
  </td>
207
  </tr>
208
  <?php
252
  <?php
253
  if ($noAssetsToRemove) {
254
  ?>
255
+ &nbsp;<small><?php _e('Note: As there are no unloaded assets (scripts &amp; styles) to be managed, the button is disabled.', WPACU_PLUGIN_TEXT_DOMAIN); ?></small>
256
  <?php
257
  }
258
  ?>
templates/_admin-page-settings-plugin-areas/_combine-loaded-files.php CHANGED
@@ -10,17 +10,17 @@ $tabIdArea = 'wpacu-setting-combine-loaded-files';
10
  $styleTabContent = ($selectedTabArea === $tabIdArea) ? 'style="display: table-cell;"' : '';
11
  ?>
12
  <div id="<?php echo $tabIdArea; ?>" class="wpacu-settings-tab-content" <?php echo $styleTabContent; ?>>
13
- <h2 class="wpacu-settings-area-title"><?php _e('Combine loaded CSS &amp; JavaScript files into fewer files', WPACU_PLUGIN_TEXT_DOMAIN); ?></h2>
14
 
15
  <div style="line-height: 22px; background: #f8f8f8; border-left: 4px solid #008f9c; padding: 10px; margin: 0 0 15px;">
16
- <strong>NOTE:</strong> Concatenating assets is no longer a recommended practice in HTTP/2. &nbsp; <span style="color: #0073aa;" class="dashicons dashicons-info"></span> <a id="wpacu-http2-info-link" href="#wpacu-http2-info">Read more</a> &nbsp;|&nbsp; <a target="_blank" href="https://tools.keycdn.com/http2-test">Verify if your server has HTTP/2 support</a>
17
  </div>
18
 
19
  <table class="wpacu-form-table">
20
  <tr valign="top">
21
  <th scope="row" class="setting_title">
22
- <label for="wpacu_combine_loaded_css_enable">Combine loaded CSS (Stylesheets) into one file?</label>
23
- <p class="wpacu_subtitle"><small><em>Helps reducing the number of HTTP Requests even further</em></small></p>
24
  </th>
25
  <td>
26
  <label class="wpacu_switch">
@@ -42,12 +42,12 @@ $styleTabContent = ($selectedTabArea === $tabIdArea) ? 'style="display: table-ce
42
  type="checkbox"
43
  name="<?php echo WPACU_PLUGIN_ID . '_settings'; ?>[combine_loaded_css_for_admin_only]"
44
  value="1" />
45
- Apply combination only for logged-in administrator (for debugging purposes)
46
  </label>
47
  </p>
48
 
49
  <div id="wpacu_combine_loaded_css_exceptions_area">
50
- <div style="margin: 0 0 6px;">Do not combine the CSS files matching the patterns below (one per line, see pattern examples below):</div>
51
  <label for="combine_loaded_css_exceptions">
52
  <textarea style="width: 100%;"
53
  rows="4"
@@ -78,8 +78,8 @@ $styleTabContent = ($selectedTabArea === $tabIdArea) ? 'style="display: table-ce
78
 
79
  <tr valign="top">
80
  <th scope="row" class="setting_title">
81
- <label for="wpacu_combine_loaded_js_enable">Combine loaded JS (JavaScript) into fewer files?</label>
82
- <p class="wpacu_subtitle"><small><em>Helps reducing the number of HTTP Requests even further</em></small></p>
83
  </th>
84
  <td>
85
  <label class="wpacu_switch">
@@ -101,7 +101,7 @@ $styleTabContent = ($selectedTabArea === $tabIdArea) ? 'style="display: table-ce
101
  type="checkbox"
102
  name="<?php echo WPACU_PLUGIN_ID . '_settings'; ?>[combine_loaded_js_for_admin_only]"
103
  value="1" />
104
- Apply combination only for logged-in administrator (for debugging purposes)
105
  </label>
106
  </p>
107
 
@@ -119,7 +119,7 @@ $styleTabContent = ($selectedTabArea === $tabIdArea) ? 'style="display: table-ce
119
  <hr />
120
 
121
  <div id="wpacu_combine_loaded_js_exceptions_area">
122
- <div style="margin: 0 0 6px;">Do not combine the JavaScript files matching the patterns below (one per line, see pattern examples below):</div>
123
  <label for="combine_loaded_js_exceptions">
124
  <textarea style="width: 100%;"
125
  rows="4"
@@ -127,7 +127,7 @@ $styleTabContent = ($selectedTabArea === $tabIdArea) ? 'style="display: table-ce
127
  name="<?php echo WPACU_PLUGIN_ID . '_settings'; ?>[combine_loaded_js_exceptions]"><?php echo $data['combine_loaded_js_exceptions']; ?></textarea>
128
  </label>
129
 
130
- <p>Pattern Examples (you don't have to add the full URL, as it's recommended to use relative paths):</p>
131
  <code>/wp-includes/js/admin-bar.min.js<br />/wp-includes/js/masonry.min.js<br />/wp-content/plugins/plugin-title/js/(.*?).js</code>
132
 
133
  <div style="margin-top: 15px; margin-bottom: 0;"><hr /></div>
@@ -136,7 +136,7 @@ $styleTabContent = ($selectedTabArea === $tabIdArea) ? 'style="display: table-ce
136
  <!--
137
  -->
138
  <p>
139
- This results in as less JS combination groups as possible (this combines all JS files into 2/3 files, keeping their HEAD and BODY locations and most of the inline script tags before them for maximum compatibility) - <a id="wpacu-combine-js-method-info-link" href="#wpacu-combine-js-method-info">Read more</a>
140
  </p>
141
 
142
  <hr />
@@ -161,10 +161,10 @@ $styleTabContent = ($selectedTabArea === $tabIdArea) ? 'style="display: table-ce
161
  <div id="wpacu-combine-js-method-info" class="wpacu-modal">
162
  <div class="wpacu-modal-content">
163
  <span class="wpacu-close">&times;</span>
164
- <h2>How the JavaScript files are combined?</h2>
165
- <p style="margin-top: 0;">Scans the remaining JavaScript files (left after cleaning up the unnecessary ones) from the <code>&lt;head&gt;</code> and <code>&lt;body&gt;</code> locations and combines them into one file per each location.</p>
166
- <p>Any inline JavaScript code associated with the combined scripts, will not be altered or moved in any way.</p>
167
- <p><strong>Example:</strong> If you have 5 JS files (including jQuery library) loading in the <code>&lt;head&gt;</code> location and 7 JS files loading in <code>&lt;body&gt;</code> location, you will end up with a total of 3 JS files: jQuery library &amp; jQuery Migrate (they are not combined together with other JS files for maximum performance) in 1 file and the 2 JS files for HEAD and BODY, respectively.</p>
168
  </div>
169
  </div>
170
  </td>
@@ -175,25 +175,25 @@ $styleTabContent = ($selectedTabArea === $tabIdArea) ? 'style="display: table-ce
175
  <div id="wpacu-http2-info" class="wpacu-modal" style="padding-top: 100px;">
176
  <div class="wpacu-modal-content" style="max-width: 800px;">
177
  <span class="wpacu-close">&times;</span>
178
- <h2 style="margin-top: 5px;">Combining CSS &amp; JavaScript files in HTTP/2 protocol</h2>
179
- <p>While it's still a good idea to combine assets into fewer (or only one) files in HTTP/1 (since you are restricted to the number of open connections), doing the same in HTTP/2 is no longer a performance optimization due to the ability to transfer multiple small files simultaneously without much overhead.</p>
180
 
181
  <hr />
182
 
183
- <p>In HTTP/2 some of the issues that were addressed are:</p>
184
  <ul>
185
 
186
- <li><strong>Multiplexing</strong>: allows concurrent requests across a single TCP connection</li>
187
- <li><strong>Server Push</strong>: whereby a server can push vital resources to the browser before being asked for them.</li>
188
  </ul>
189
 
190
  <hr />
191
 
192
- <p>Since HTTP requests are loaded concurrently in HTTP/2, it's better to only serve the files that your visitors need and don't worry much about concatenation.</p>
193
- <p>Note that page speed testing tools such as PageSpeed Insights, YSlow, Pingdom Tools or GTMetrix still recommend combining CSS/JS files because they haven't updated their recommendations based on HTTP/1 or HTTP/2 protocols so you should take into account the actual load time, not the performance grade.</p>
194
 
195
  <hr />
196
 
197
- <p style="margin-bottom: 12px;">If you do decide to move on with the concatenation (which at least would improve the GTMetrix performance grade from a cosmetic point of view), please remember to <strong>test thoroughly</strong> the pages that have the assets combined (pay attention to any JavaScript errors in the browser's console which is accessed via right click &amp; "Inspect") as, in rare cases, due to the order in which the scripts were loaded and the way their code was written, it could break some functionality.</p>
198
  </div>
199
  </div>
10
  $styleTabContent = ($selectedTabArea === $tabIdArea) ? 'style="display: table-cell;"' : '';
11
  ?>
12
  <div id="<?php echo $tabIdArea; ?>" class="wpacu-settings-tab-content" <?php echo $styleTabContent; ?>>
13
+ <h2 class="wpacu-settings-area-title"><?php echo __('Combine loaded CSS &amp; JavaScript files into fewer files', WPACU_PLUGIN_TEXT_DOMAIN); ?></h2>
14
 
15
  <div style="line-height: 22px; background: #f8f8f8; border-left: 4px solid #008f9c; padding: 10px; margin: 0 0 15px;">
16
+ <strong><?php _e('NOTE', WPACU_PLUGIN_TEXT_DOMAIN); ?>:</strong> <?php echo __('Concatenating assets is no longer a recommended practice in HTTP/2', WPACU_PLUGIN_TEXT_DOMAIN); ?>. &nbsp; <span style="color: #0073aa;" class="dashicons dashicons-info"></span> <a id="wpacu-http2-info-link" href="#wpacu-http2-info"><?php _e('Read more', WPACU_PLUGIN_TEXT_DOMAIN); ?></a> &nbsp;|&nbsp; <a target="_blank" href="https://tools.keycdn.com/http2-test"><?php _e('Verify if your server has HTTP/2 support', WPACU_PLUGIN_TEXT_DOMAIN); ?></a>
17
  </div>
18
 
19
  <table class="wpacu-form-table">
20
  <tr valign="top">
21
  <th scope="row" class="setting_title">
22
+ <label for="wpacu_combine_loaded_css_enable"><?php _e('Combine loaded CSS (Stylesheets) into one file', WPACU_PLUGIN_TEXT_DOMAIN); ?></label>
23
+ <p class="wpacu_subtitle"><small><em><?php _e('Helps reducing the number of HTTP Requests even further', WPACU_PLUGIN_TEXT_DOMAIN); ?></em></small></p>
24
  </th>
25
  <td>
26
  <label class="wpacu_switch">
42
  type="checkbox"
43
  name="<?php echo WPACU_PLUGIN_ID . '_settings'; ?>[combine_loaded_css_for_admin_only]"
44
  value="1" />
45
+ <?php _e('Apply combination only for logged-in administrator (for debugging purposes)', WPACU_PLUGIN_TEXT_DOMAIN); ?>
46
  </label>
47
  </p>
48
 
49
  <div id="wpacu_combine_loaded_css_exceptions_area">
50
+ <div style="margin: 0 0 6px;"><?php _e('Do not combine the CSS files matching the patterns below', WPACU_PLUGIN_TEXT_DOMAIN); ?> (<?php _e('one per line', WPACU_PLUGIN_TEXT_DOMAIN); ?>):</div>
51
  <label for="combine_loaded_css_exceptions">
52
  <textarea style="width: 100%;"
53
  rows="4"
78
 
79
  <tr valign="top">
80
  <th scope="row" class="setting_title">
81
+ <label for="wpacu_combine_loaded_js_enable"><?php _e('Combine loaded JS (JavaScript) into fewer files', WPACU_PLUGIN_TEXT_DOMAIN); ?></label>
82
+ <p class="wpacu_subtitle"><small><em><?php _e('Helps reducing the number of HTTP Requests even further', WPACU_PLUGIN_TEXT_DOMAIN); ?></em></small></p>
83
  </th>
84
  <td>
85
  <label class="wpacu_switch">
101
  type="checkbox"
102
  name="<?php echo WPACU_PLUGIN_ID . '_settings'; ?>[combine_loaded_js_for_admin_only]"
103
  value="1" />
104
+ <?php _e('Apply combination only for logged-in administrator', WPACU_PLUGIN_TEXT_DOMAIN); ?> (<?php _e('for debugging purposes', WPACU_PLUGIN_TEXT_DOMAIN); ?>)
105
  </label>
106
  </p>
107
 
119
  <hr />
120
 
121
  <div id="wpacu_combine_loaded_js_exceptions_area">
122
+ <div style="margin: 0 0 6px;"><?php _e('Do not combine the JavaScript files matching the patterns below (one per line, see pattern examples below)', WPACU_PLUGIN_TEXT_DOMAIN); ?>:</div>
123
  <label for="combine_loaded_js_exceptions">
124
  <textarea style="width: 100%;"
125
  rows="4"
127
  name="<?php echo WPACU_PLUGIN_ID . '_settings'; ?>[combine_loaded_js_exceptions]"><?php echo $data['combine_loaded_js_exceptions']; ?></textarea>
128
  </label>
129
 
130
+ <p><?php _e('Pattern Examples (you don\'t have to add the full URL, as it\'s recommended to use relative paths)', WPACU_PLUGIN_TEXT_DOMAIN); ?>:</p>
131
  <code>/wp-includes/js/admin-bar.min.js<br />/wp-includes/js/masonry.min.js<br />/wp-content/plugins/plugin-title/js/(.*?).js</code>
132
 
133
  <div style="margin-top: 15px; margin-bottom: 0;"><hr /></div>
136
  <!--
137
  -->
138
  <p>
139
+ <?php _e('This results in as less JS combination groups as possible (this combines all JS files into 2/3 files, keeping their HEAD and BODY locations and most of the inline script tags before them for maximum compatibility)', WPACU_PLUGIN_TEXT_DOMAIN); ?> - <a id="wpacu-combine-js-method-info-link" href="#wpacu-combine-js-method-info"><?php _e('Read more', WPACU_PLUGIN_TEXT_DOMAIN); ?></a>
140
  </p>
141
 
142
  <hr />
161
  <div id="wpacu-combine-js-method-info" class="wpacu-modal">
162
  <div class="wpacu-modal-content">
163
  <span class="wpacu-close">&times;</span>
164
+ <h2><?php _e('How are the JavaScript files combined?', WPACU_PLUGIN_TEXT_DOMAIN); ?></h2>
165
+ <p style="margin-top: 0;"><?php _e('The plugin scans the remaining JavaScript files (left after cleaning up the unnecessary ones) from the <code>&lt;head&gt;</code> and <code>&lt;body&gt;</code> locations and combines them into one file per each location.', WPACU_PLUGIN_TEXT_DOMAIN); ?></p>
166
+ <p><?php _e('Any inline JavaScript code associated with the combined scripts, will not be altered or moved in any way.', WPACU_PLUGIN_TEXT_DOMAIN); ?></p>
167
+ <p><strong><?php _e('Example', WPACU_PLUGIN_TEXT_DOMAIN); ?>:</strong> <?php _e('If you have 5 JS files (including jQuery library) loading in the <code>&lt;head&gt;</code> location and 7 JS files loading in <code>&lt;body&gt;</code> location, you will end up with a total of 3 JS files: jQuery library &amp; jQuery Migrate (they are not combined together with other JS files for maximum performance) in 1 file and the 2 JS files for HEAD and BODY, respectively.', WPACU_PLUGIN_TEXT_DOMAIN); ?></p>
168
  </div>
169
  </div>
170
  </td>
175
  <div id="wpacu-http2-info" class="wpacu-modal" style="padding-top: 100px;">
176
  <div class="wpacu-modal-content" style="max-width: 800px;">
177
  <span class="wpacu-close">&times;</span>
178
+ <h2 style="margin-top: 5px;"><?php _e('Combining CSS &amp; JavaScript files in HTTP/2 protocol', WPACU_PLUGIN_TEXT_DOMAIN); ?></h2>
179
+ <p><?php _e('While it\'s still a good idea to combine assets into fewer (or only one) files in HTTP/1 (since you are restricted to the number of open connections), doing the same in HTTP/2 is no longer a performance optimization due to the ability to transfer multiple small files simultaneously without much overhead.', WPACU_PLUGIN_TEXT_DOMAIN); ?></p>
180
 
181
  <hr />
182
 
183
+ <p><?php _e('In HTTP/2 some of the issues that were addressed are', WPACU_PLUGIN_TEXT_DOMAIN); ?>:</p>
184
  <ul>
185
 
186
+ <li><strong>Multiplexing</strong>: <?php _e('allows concurrent requests across a single TCP connection', WPACU_PLUGIN_TEXT_DOMAIN); ?></li>
187
+ <li><strong>Server Push</strong>: <?php _e('whereby a server can push vital resources to the browser before being asked for them.', WPACU_PLUGIN_TEXT_DOMAIN); ?></li>
188
  </ul>
189
 
190
  <hr />
191
 
192
+ <p><?php _e('Since HTTP requests are loaded concurrently in HTTP/2, it\'s better to only serve the files that your visitors need and don\'t worry much about concatenation.', WPACU_PLUGIN_TEXT_DOMAIN); ?></p>
193
+ <p><?php _e('Note that page speed testing tools such as PageSpeed Insights, YSlow, Pingdom Tools or GTMetrix still recommend combining CSS/JS files because they haven\'t updated their recommendations based on HTTP/1 or HTTP/2 protocols so you should take into account the actual load time, not the performance grade.', WPACU_PLUGIN_TEXT_DOMAIN); ?></p>
194
 
195
  <hr />
196
 
197
+ <p style="margin-bottom: 12px;"><?php _e('If you do decide to move on with the concatenation (which at least would improve the GTMetrix performance grade from a cosmetic point of view), please remember to <strong>test thoroughly</strong> the pages that have the assets combined (pay attention to any JavaScript errors in the browser\'s console which is accessed via right click &amp; "Inspect") as, in rare cases, due to the order in which the scripts were loaded and the way their code was written, it could break some functionality.', WPACU_PLUGIN_TEXT_DOMAIN); ?></p>
198
  </div>
199
  </div>
templates/_admin-page-settings-plugin-areas/_common-files-unload.php CHANGED
@@ -11,12 +11,12 @@ $styleTabContent = ($selectedTabArea === $tabIdArea) ? 'style="display: table-ce
11
  ?>
12
  <div id="<?php echo $tabIdArea; ?>" class="wpacu-settings-tab-content" <?php echo $styleTabContent; ?>>
13
  <h2 class="wpacu-settings-area-title"><?php _e('Site-Wide Unload For Common CSS &amp; JS Files', WPACU_PLUGIN_TEXT_DOMAIN); ?></h2>
14
- <p>This area allows you to quickly add the rule "Unload Site-wide" for the scripts below, which are often used in WordPress environments.</p>
15
  <table class="wpacu-form-table">
16
  <tr valign="top">
17
  <th scope="row" class="setting_title">
18
- <label for="wpacu_disable_emojis">Disable Emojis Site-Wide?</label>
19
- <p class="wpacu_subtitle"><small><em>It will fallback to the default browser's Emojis and not fetch the ones from https://s.w.org/</em></small></p>
20
  </th>
21
  <td>
22
  <label class="wpacu_switch">
@@ -26,14 +26,14 @@ $styleTabContent = ($selectedTabArea === $tabIdArea) ? 'style="display: table-ce
26
  name="<?php echo WPACU_PLUGIN_ID . '_settings'; ?>[disable_emojis]"
27
  value="1" /> <span class="wpacu_slider wpacu_round"></span> </label>
28
  &nbsp;
29
- This will unload WordPress' Emojis (the smiley icons)
30
- <p style="margin-top: 10px;">As of WordPress 4.2, a new feature was introduced that allows you to use the new Emojis. While on some WordPress setups is useful, in many situations (especially when you are not using WordPress as a blog), you just don’t need them and the file /wp-includes/js/wp-emoji-release.min.js is loaded along with extra inline JavaScript code which add up to the number of loaded HTTP requests.</p>
31
  </td>
32
  </tr>
33
 
34
  <tr valign="top">
35
  <th scope="row">
36
- <label for="wpacu_disable_jquery_migrate">Disable jQuery Migrate Site-Wide? <span style="color: #cc0000;" class="dashicons dashicons-warning wordpress-core-file"><span class="wpacu-tooltip">WordPress Core File<br />Not sure if needed or not? In this case, it's better to leave it loaded to avoid breaking the website.</span></span></label>
37
  </th>
38
  <td>
39
  <label class="wpacu_switch">
@@ -42,14 +42,14 @@ $styleTabContent = ($selectedTabArea === $tabIdArea) ? 'style="display: table-ce
42
  name="<?php echo WPACU_PLUGIN_ID . '_global_unloads'; ?>[disable_jquery_migrate]"
43
  value="1" /> <span class="wpacu_slider wpacu_round"></span> </label>
44
  &nbsp;
45
- This will unload jQuery Migrate (<em>jquery-migrate(.min).js</em>)
46
- <p style="margin-top: 10px;">This is a JavaScript library that allows older jQuery code (up to version jQuery 1.9) to run on the latest version of jQuery avoiding incompatibility problems. Unless your website is using an old theme or has a jQuery plugin that was written a long time ago, this file is likely not needed to load. Consider disabling it to improve page loading time. Make sure to properly test the website.</p>
47
  </td>
48
  </tr>
49
 
50
  <tr valign="top">
51
  <th scope="row">
52
- <label for="wpacu_disable_comment_reply">Disable Comment Reply Site-Wide? <span style="color: #cc0000;" class="dashicons dashicons-warning wordpress-core-file"><span class="wpacu-tooltip">WordPress Core File<br />Not sure if needed or not? In this case, it's better to leave it loaded to avoid breaking the website.</span></span></label>
53
  </th>
54
  <td>
55
  <label class="wpacu_switch">
@@ -58,8 +58,8 @@ $styleTabContent = ($selectedTabArea === $tabIdArea) ? 'style="display: table-ce
58
  name="<?php echo WPACU_PLUGIN_ID . '_global_unloads'; ?>[disable_comment_reply]"
59
  value="1" /> <span class="wpacu_slider wpacu_round"></span> </label>
60
  &nbsp;
61
- This will unload Comment Reply (<em>/wp-includes/js/comment-reply(.min).js</em>)
62
- <p style="margin-top: 10px;">This is safe to unload if you're not using WordPress as a blog, do not want visitors to leave comments or you've replaced the default WordPress comments with a comment platform such as Disqus or Facebook.</p>
63
  </td>
64
  </tr>
65
  </table>
11
  ?>
12
  <div id="<?php echo $tabIdArea; ?>" class="wpacu-settings-tab-content" <?php echo $styleTabContent; ?>>
13
  <h2 class="wpacu-settings-area-title"><?php _e('Site-Wide Unload For Common CSS &amp; JS Files', WPACU_PLUGIN_TEXT_DOMAIN); ?></h2>
14
+ <p><?php _e('This area allows you to quickly add the rule "Unload Site-wide" for the scripts below, which are often used in WordPress environments.', WPACU_PLUGIN_TEXT_DOMAIN); ?></p>
15
  <table class="wpacu-form-table">
16
  <tr valign="top">
17
  <th scope="row" class="setting_title">
18
+ <label for="wpacu_disable_emojis"><?php echo sprintf(__('Disable %s Site-Wide', WPACU_PLUGIN_TEXT_DOMAIN), 'Emojis'); ?></label>
19
+ <p class="wpacu_subtitle"><small><em><?php echo sprintf(__('It will fallback to the default browser\'s Emojis and not fetch the ones from %s', WPACU_PLUGIN_TEXT_DOMAIN), 'https://s.w.org/'); ?></em></small></p>
20
  </th>
21
  <td>
22
  <label class="wpacu_switch">
26
  name="<?php echo WPACU_PLUGIN_ID . '_settings'; ?>[disable_emojis]"
27
  value="1" /> <span class="wpacu_slider wpacu_round"></span> </label>
28
  &nbsp;
29
+ <?php echo sprintf(__('This will unload %s', WPACU_PLUGIN_TEXT_DOMAIN), 'WordPress\' Emojis'); ?> (the smiley icons)
30
+ <p style="margin-top: 10px;"><?php _e('As of WordPress 4.2, a new feature was introduced that allows you to use the new Emojis.', WPACU_PLUGIN_TEXT_DOMAIN); ?> <?php echo sprintf(__('While on some WordPress setups is useful, in many situations (especially when you are not using WordPress as a blog), you just don’t need them and the file %s is loaded along with extra inline JavaScript code which add up to the number of loaded HTTP requests.', WPACU_PLUGIN_TEXT_DOMAIN), '/wp-includes/js/wp-emoji-release.min.js'); ?></p>
31
  </td>
32
  </tr>
33
 
34
  <tr valign="top">
35
  <th scope="row">
36
+ <label for="wpacu_disable_jquery_migrate"><?php echo sprintf(__('Disable %s Site-Wide', WPACU_PLUGIN_TEXT_DOMAIN), 'jQuery Migrate'); ?> <span style="color: #cc0000;" class="dashicons dashicons-warning wordpress-core-file"><span class="wpacu-tooltip">WordPress Core File<br />Not sure if needed or not? In this case, it's better to leave it loaded to avoid breaking the website.</span></span></label>
37
  </th>
38
  <td>
39
  <label class="wpacu_switch">
42
  name="<?php echo WPACU_PLUGIN_ID . '_global_unloads'; ?>[disable_jquery_migrate]"
43
  value="1" /> <span class="wpacu_slider wpacu_round"></span> </label>
44
  &nbsp;
45
+ <?php echo sprintf(__('This will unload %s', WPACU_PLUGIN_TEXT_DOMAIN), 'jQuery Migrate'); ?> (<em>jquery-migrate(.min).js</em>)
46
+ <p style="margin-top: 10px;"><?php _e('This is a JavaScript library that allows older jQuery code (up to version jQuery 1.9) to run on the latest version of jQuery avoiding incompatibility problems. Unless your website is using an old theme or has a jQuery plugin that was written a long time ago, this file is likely not needed to load. Consider disabling it to improve page loading time. Make sure to properly test the website.', WPACU_PLUGIN_TEXT_DOMAIN); ?></p>
47
  </td>
48
  </tr>
49
 
50
  <tr valign="top">
51
  <th scope="row">
52
+ <label for="wpacu_disable_comment_reply"><?php echo sprintf(__('Disable %s Site-Wide', WPACU_PLUGIN_TEXT_DOMAIN), 'Comment Reply'); ?> <span style="color: #cc0000;" class="dashicons dashicons-warning wordpress-core-file"><span class="wpacu-tooltip">WordPress Core File<br /><?php _e('Not sure if needed or not? In this case, it\'s better to leave it loaded to avoid breaking the website.', WPACU_PLUGIN_TEXT_DOMAIN); ?></span></span></label>
53
  </th>
54
  <td>
55
  <label class="wpacu_switch">
58
  name="<?php echo WPACU_PLUGIN_ID . '_global_unloads'; ?>[disable_comment_reply]"
59
  value="1" /> <span class="wpacu_slider wpacu_round"></span> </label>
60
  &nbsp;
61
+ <?php echo sprintf(__('This will unload %s', WPACU_PLUGIN_TEXT_DOMAIN), 'Comment Reply'); ?> (<em>/wp-includes/js/comment-reply(.min).js</em>)
62
+ <p style="margin-top: 10px;"><?php _e('This is safe to unload if you\'re not using WordPress as a blog, do not want visitors to leave comments or you\'ve replaced the default WordPress comments with a comment platform such as Disqus or Facebook.', WPACU_PLUGIN_TEXT_DOMAIN); ?></p>
63
  </td>
64
  </tr>
65
  </table>
templates/_admin-page-settings-plugin-areas/_minify-loaded-files.php CHANGED
@@ -14,8 +14,8 @@ $styleTabContent = ($selectedTabArea === $tabIdArea) ? 'style="display: table-ce
14
  <table class="wpacu-form-table">
15
  <tr valign="top">
16
  <th scope="row" class="setting_title">
17
- <label for="wpacu_minify_css_enable">CSS Files Minification</label>
18
- <p class="wpacu_subtitle"><small><em>Helps decrease the total page size even further</em></small></p>
19
  </th>
20
  <td>
21
  <label class="wpacu_switch">
@@ -25,14 +25,14 @@ $styleTabContent = ($selectedTabArea === $tabIdArea) ? 'style="display: table-ce
25
  name="<?php echo WPACU_PLUGIN_ID . '_settings'; ?>[minify_loaded_css]"
26
  value="1" /> <span class="wpacu_slider wpacu_round"></span> </label>
27
 
28
- &nbsp;This will take the remaining enqueued CSS files, minify them and load them from the cache.
29
 
30
  <?php
31
  $minifyCssExceptionsAreaStyle = ($data['minify_loaded_css'] == 1) ? 'opacity: 1;' : 'opacity: 0.4;';
32
  ?>
33
 
34
  <div id="wpacu_minify_css_exceptions_area" style="<?php echo $minifyCssExceptionsAreaStyle; ?>">
35
- <div style="margin: 0 0 6px;">Do not minify the CSS files matching the patterns below (one per line):</div>
36
  <label for="wpacu_minify_css_exceptions">
37
  <textarea style="width: 100%;"
38
  rows="4"
@@ -46,8 +46,8 @@ $styleTabContent = ($selectedTabArea === $tabIdArea) ? 'style="display: table-ce
46
 
47
  <tr valign="top">
48
  <th scope="row" class="setting_title">
49
- <label for="wpacu_minify_js_enable">JavaScript Files Minification</label>
50
- <p class="wpacu_subtitle"><small><em>Helps decrease the total page size even further</em></small></p>
51
  </th>
52
  <td>
53
  <label class="wpacu_switch">
@@ -56,14 +56,14 @@ $styleTabContent = ($selectedTabArea === $tabIdArea) ? 'style="display: table-ce
56
  <?php echo (($data['minify_loaded_js'] == 1) ? 'checked="checked"' : ''); ?>
57
  name="<?php echo WPACU_PLUGIN_ID . '_settings'; ?>[minify_loaded_js]"
58
  value="1" /> <span class="wpacu_slider wpacu_round"></span></label>
59
- &nbsp;&nbsp;This will take the remaining enqueued JavaScript files, minify them and load them from the cache.
60
 
61
  <?php
62
  $minifyJsExceptionsAreaStyle = ($data['minify_loaded_js'] == 1) ? 'opacity: 1;' : 'opacity: 0.4;';
63
  ?>
64
 
65
  <div id="wpacu_minify_js_exceptions_area" style="<?php echo $minifyJsExceptionsAreaStyle; ?>">
66
- <div style="margin: 0 0 6px;">Do not minify the JavaScript files matching the patterns below (one per line):</div>
67
  <label for="wpacu_minify_js_exceptions">
68
  <textarea style="width: 100%;"
69
  rows="4"
@@ -80,11 +80,11 @@ $styleTabContent = ($selectedTabArea === $tabIdArea) ? 'style="display: table-ce
80
 
81
  <ul style="list-style: none; margin-left: 18px;">
82
  <li style="margin-bottom: 18px;"><span style="color: #ffc107;" class="dashicons dashicons-lightbulb"></span> The CSS/JS cached files will be re-generated once the file version changes (the value from <code>?ver=</code>). In addition, the versioning value from the source will be appended to the new cached CSS/JS file name (e.g. new-file-name-here-ver-1.2).</li>
83
- <li><span style="color: #ffc107;" class="dashicons dashicons-lightbulb"></span> For maximum performance and to reduce server resources, the following CSS/JS files will not be minified, but kept as they are, since they are already optimised and minified by the WordPress core contributors &amp; developers:
84
  <div style="margin: 15px 0 0 28px;">
85
  <ul style="list-style: circle;">
86
  <li>CSS/JS WordPress core files that end up in .min.css and .min.js (e.g. <code>/wp-includes/css/dashicons.min.css</code>, <code>/wp-includes/css/admin-bar.min.css</code>, <code>/wp-includes/js/jquery/jquery-migrate.min.js</code>, <code>/wp-includes/js/jquery/ui/datepicker.min.js</code> etc.)</li>
87
- <li>jQuery library from <code>/wp-includes/js/jquery/jquery.js</code></li>
88
  </ul>
89
  </div>
90
  </li>
14
  <table class="wpacu-form-table">
15
  <tr valign="top">
16
  <th scope="row" class="setting_title">
17
+ <label for="wpacu_minify_css_enable"><?php _e('CSS Files Minification', WPACU_PLUGIN_TEXT_DOMAIN); ?></label>
18
+ <p class="wpacu_subtitle"><small><em><?php _e('Helps decrease the total page size even further', WPACU_PLUGIN_TEXT_DOMAIN); ?></em></small></p>
19
  </th>
20
  <td>
21
  <label class="wpacu_switch">
25
  name="<?php echo WPACU_PLUGIN_ID . '_settings'; ?>[minify_loaded_css]"
26
  value="1" /> <span class="wpacu_slider wpacu_round"></span> </label>
27
 
28
+ &nbsp;<?php _e('This will take the remaining enqueued CSS files, minify them and load them from the cache.', WPACU_PLUGIN_TEXT_DOMAIN); ?>
29
 
30
  <?php
31
  $minifyCssExceptionsAreaStyle = ($data['minify_loaded_css'] == 1) ? 'opacity: 1;' : 'opacity: 0.4;';
32
  ?>
33
 
34
  <div id="wpacu_minify_css_exceptions_area" style="<?php echo $minifyCssExceptionsAreaStyle; ?>">
35
+ <div style="margin: 0 0 6px;"><?php _e('Do not minify the CSS files matching the patterns below (one per line)', WPACU_PLUGIN_TEXT_DOMAIN); ?>:</div>
36
  <label for="wpacu_minify_css_exceptions">
37
  <textarea style="width: 100%;"
38
  rows="4"
46
 
47
  <tr valign="top">
48
  <th scope="row" class="setting_title">
49
+ <label for="wpacu_minify_js_enable"><?php _e('JavaScript Files Minification', WPACU_PLUGIN_TEXT_DOMAIN); ?></label>
50
+ <p class="wpacu_subtitle"><small><em><?php _e('Helps decrease the total page size even further', WPACU_PLUGIN_TEXT_DOMAIN); ?></em></small></p>
51
  </th>
52
  <td>
53
  <label class="wpacu_switch">
56
  <?php echo (($data['minify_loaded_js'] == 1) ? 'checked="checked"' : ''); ?>
57
  name="<?php echo WPACU_PLUGIN_ID . '_settings'; ?>[minify_loaded_js]"
58
  value="1" /> <span class="wpacu_slider wpacu_round"></span></label>
59
+ &nbsp;&nbsp;<?php _e('This will take the remaining enqueued JavaScript files, minify them and load them from the cache.', WPACU_PLUGIN_TEXT_DOMAIN); ?>
60
 
61
  <?php
62
  $minifyJsExceptionsAreaStyle = ($data['minify_loaded_js'] == 1) ? 'opacity: 1;' : 'opacity: 0.4;';
63
  ?>
64
 
65
  <div id="wpacu_minify_js_exceptions_area" style="<?php echo $minifyJsExceptionsAreaStyle; ?>">
66
+ <div style="margin: 0 0 6px;"><?php _e('Do not minify the JavaScript files matching the patterns below (one per line)', WPACU_PLUGIN_TEXT_DOMAIN); ?>:</div>
67
  <label for="wpacu_minify_js_exceptions">
68
  <textarea style="width: 100%;"
69
  rows="4"
80
 
81
  <ul style="list-style: none; margin-left: 18px;">
82
  <li style="margin-bottom: 18px;"><span style="color: #ffc107;" class="dashicons dashicons-lightbulb"></span> The CSS/JS cached files will be re-generated once the file version changes (the value from <code>?ver=</code>). In addition, the versioning value from the source will be appended to the new cached CSS/JS file name (e.g. new-file-name-here-ver-1.2).</li>
83
+ <li><span style="color: #ffc107;" class="dashicons dashicons-lightbulb"></span> <?php _e('For maximum performance and to reduce server resources, the following CSS/JS files will not be minified, but kept as they are, since they are already optimised and minified by the WordPress core contributors &amp; developers', WPACU_PLUGIN_TEXT_DOMAIN); ?>:
84
  <div style="margin: 15px 0 0 28px;">
85
  <ul style="list-style: circle;">
86
  <li>CSS/JS WordPress core files that end up in .min.css and .min.js (e.g. <code>/wp-includes/css/dashicons.min.css</code>, <code>/wp-includes/css/admin-bar.min.css</code>, <code>/wp-includes/js/jquery/jquery-migrate.min.js</code>, <code>/wp-includes/js/jquery/ui/datepicker.min.js</code> etc.)</li>
87
+ <li><?php echo sprintf(__('jQuery library from %s', WPACU_PLUGIN_TEXT_DOMAIN), '<code>/wp-includes/js/jquery/jquery.js</code>'); ?></li>
88
  </ul>
89
  </div>
90
  </li>
templates/_admin-page-settings-plugin-areas/_plugin-usage-settings.php CHANGED
@@ -10,16 +10,16 @@ $tabIdArea = 'wpacu-setting-plugin-usage-settings';
10
  $styleTabContent = ($selectedTabArea === $tabIdArea) ? 'style="display: table-cell;"' : '';
11
 
12
  // [wpacu_lite]
13
- $availableForPro = '<a class="go-pro-link-no-style" target="_blank" href="' . WPACU_PLUGIN_GO_PRO_URL . '?utm_source=plugin_usage_settings&utm_medium=assets_list_layout"><span class="wpacu-tooltip" style="width: 154px;">Click here to unlock it!</span> <img style="opacity: 0.6;" width="20" height="20" src="'.WPACU_PLUGIN_URL.'/assets/icons/icon-lock.svg" valign="top" alt="" /></a>';
14
  // [/wpacu_lite]
15
  ?>
16
  <div id="<?php echo $tabIdArea; ?>" class="wpacu-settings-tab-content" <?php echo $styleTabContent; ?>>
17
  <h2 class="wpacu-settings-area-title"><?php _e('Plugin Usage Preferences', WPACU_PLUGIN_TEXT_DOMAIN); ?></h2>
18
- <p>Choose how the assets are retrieved and whether you would like to see them within the Dashboard / Front-end view; Decide how the management list of CSS &amp; JavaScript files will show up and get sorted, depending on your preferences.</p>
19
  <table class="wpacu-form-table">
20
  <tr valign="top">
21
  <th scope="row">
22
- <label for="wpacu_dashboard">Manage in the Dashboard?</label>
23
  </th>
24
  <td>
25
  <label class="wpacu_switch">
@@ -29,16 +29,16 @@ $availableForPro = '<a class="go-pro-link-no-style" target="_blank" href="' . WP
29
  name="<?php echo WPACU_PLUGIN_ID . '_settings'; ?>[dashboard_show]"
30
  value="1" /> <span class="wpacu_slider wpacu_round"></span> </label>
31
  &nbsp;
32
- This will show the list of assets in a meta box on edit the post (any type) / page within the Dashboard
33
- <p>The assets would be retrieved via AJAX call(s) that will fetch the post/page URL and extract all the styles &amp; scripts that are enqueued.</p>
34
- <p>Note that sometimes the assets list is not loading within the Dashboard. That could be because "mod_security" Apache module is enabled or some securiy plugins are blocking the AJAX request. If this option doesn't work, consider managing the list in the front-end view.</p>
35
 
36
  <div id="wpacu-settings-assets-retrieval-mode"
37
  <?php if (! ($data['dashboard_show'] == 1)) { echo 'style="display: none;"'; } ?>>
38
 
39
  <ul id="wpacu-dom-get-type-selections">
40
  <li>
41
- <label for="wpacu_dom_get_type">Select a retrieval way:</label>
42
  </li>
43
  <li>
44
  <label>
@@ -46,7 +46,7 @@ $availableForPro = '<a class="go-pro-link-no-style" target="_blank" href="' . WP
46
  data-target="wpacu-dom-get-type-direct-info"
47
  <?php if ($data['dom_get_type'] === 'direct') { ?>checked="checked"<?php } ?>
48
  type="radio" name="<?php echo WPACU_PLUGIN_ID . '_settings'; ?>[dom_get_type]"
49
- value="direct" /> Direct
50
  </label>
51
  </li>
52
  <li>
@@ -66,18 +66,18 @@ $availableForPro = '<a class="go-pro-link-no-style" target="_blank" href="' . WP
66
  <li <?php if ($data['dom_get_type'] !== 'direct') { ?>style="display: none;"<?php } ?>
67
  class="wpacu-dom-get-type-info"
68
  id="wpacu-dom-get-type-direct-info">
69
- <strong>Direct</strong> - This one makes an AJAX call directly on the URL for which the assets are retrieved, then an extra WordPress AJAX call to process the list. Sometimes, due to some external factors (e.g. mod_security module from Apache, security plugin or the fact that non-http is forced for the front-end view and the AJAX request will be blocked), this might not work and another choice method might work better. This used to be the only option available, prior to version 1.2.4.4 and is set as default.
70
  </li>
71
  <li <?php if ($data['dom_get_type'] !== 'wp_remote_post') { ?>style="display: none;"<?php } ?>
72
  class="wpacu-dom-get-type-info"
73
  id="wpacu-dom-get-type-wp-remote-post-info">
74
- <strong>WP Remote Post</strong> - It makes a WordPress AJAX call and gets the HTML source code through wp_remote_post(). This one is less likely to be blocked as it is made on the same protocol (no HTTP request from HTTPS). However, in some cases (e.g. a different load balancer configuration), this might not work when the call to fetch a domain's URL (your website) is actually made from the same domain.
75
  </li>
76
  </ul>
77
  </div>
78
 
79
  <div id="wpacu-settings-hide-meta-boxes">
80
- <p>Whether you have this option enabled or not, the post/page plugin's meta boxes will always be generated. If you wish to hide them completely for any reason (e.g. you rarely manage the assets and you want to reduce cluttering in the edit post/page area, especially if you do lots of edits), you can do so using the options below (<em>don't forget to uncheck them whenever you wish to manage the CSS/JS assets again</em>):</p>
81
  <ul>
82
  <li><label for="wpacu-hide-assets-meta-box-checkbox"><input <?php echo (($data['hide_assets_meta_box'] == 1) ? 'checked="checked"' : ''); ?> id="wpacu-hide-assets-meta-box-checkbox" type="checkbox" name="<?php echo WPACU_PLUGIN_ID . '_settings'; ?>[hide_assets_meta_box]" value="1" /> Hide "Asset CleanUp Pro: CSS &amp; JavaScript Manager" meta box</label></li>
83
  <li><label for="wpacu-hide-options-meta-box-checkbox"><input <?php echo (($data['hide_options_meta_box'] == 1) ? 'checked="checked"' : ''); ?> id="wpacu-hide-options-meta-box-checkbox" type="checkbox" name="<?php echo WPACU_PLUGIN_ID . '_settings'; ?>[hide_options_meta_box]" value="1" /> Hide "Asset CleanUp Pro: Options" meta box</label></li>
@@ -87,7 +87,7 @@ $availableForPro = '<a class="go-pro-link-no-style" target="_blank" href="' . WP
87
  </tr>
88
  <tr valign="top">
89
  <th scope="row">
90
- <label for="wpacu_frontend">Manage in the Front-end?</label>
91
  </th>
92
  <td>
93
  <label class="wpacu_switch">
@@ -101,7 +101,7 @@ $availableForPro = '<a class="go-pro-link-no-style" target="_blank" href="' . WP
101
  <p style="margin-top: 10px;">The area will be shown through the <code>wp_footer</code> action so in case you do not see the asset list at the bottom of the page, make sure the theme is using <a href="https://codex.wordpress.org/Function_Reference/wp_footer"><code>wp_footer()</code></a> function before the <code>&lt;/body&gt;</code> tag. Any theme that follows the standards should have it. If not, you will have to add it to make sure other plugins and code from functions.php will work fine.</p>
102
 
103
  <div id="wpacu-settings-frontend-exceptions" <?php if (! ($data['frontend_show'] == 1)) { echo 'style="display: none;"'; } ?>>
104
- <div style="margin: 0 0 10px;"><label for="wpacu_frontend_show_exceptions"><span class="dashicons dashicons-info"></span> In some situations, you might want to avoid showing the CSS/JS list at the bottom of the pages (e.g. you're using a page builder such as Divi, you often load specific pages as an admin and you don't need to manage assets there or you do it rarely etc.). If that's the case, you can use the following textarea to prevent the list from showing up on pages where the <strong>URI contains</strong> the specified strings (one per line):</label></div>
105
  <textarea id="wpacu_frontend_show_exceptions"
106
  name="<?php echo WPACU_PLUGIN_ID . '_settings'; ?>[frontend_show_exceptions]"
107
  rows="5"
@@ -112,21 +112,21 @@ $availableForPro = '<a class="go-pro-link-no-style" target="_blank" href="' . WP
112
  </tr>
113
  <tr valign="top">
114
  <th scope="row">
115
- <label for="wpacu_assets_list_layout">Assets List Layout</label>
116
  </th>
117
  <td>
118
  <label>
119
  <select id="wpacu_assets_list_layout"
120
  name="<?php echo WPACU_PLUGIN_ID . '_settings'; ?>[assets_list_layout]">
121
- <option <?php if ($data['assets_list_layout'] === 'by-location') { echo 'selected="selected"'; } ?> value="by-location">All Styles &amp; Scripts &#10230; One list grouped by location (themes, plugins, core &amp; external)</option>
122
- <option <?php if ($data['assets_list_layout'] === 'by-position') { echo 'selected="selected"'; } ?> value="by-position">All Styles &amp; Scripts &#10230; One list grouped by tag position: &lt;head&gt; &amp; &lt;body&gt;</option>
123
- <option <?php if (in_array($data['assets_list_layout'], array('two-lists', 'default'))) { echo 'selected="selected"'; } ?> value="two-lists">All Styles + All Scripts &#10230; Two lists</option>
124
- <option disabled="disabled" value="all">All Styles &amp; Scripts &#10230; One list (Pro Version)</option>
125
  </select>
126
  </label>
127
 
128
  <div id="wpacu-assets-list-by-location-selected" style="margin: 10px 0; <?php if ($data['assets_list_layout'] !== 'by-location') { ?> display: none; <?php } ?>">
129
- <div style="margin-bottom: 6px;">When list is grouped by location, keep the assets from each of the plugins in the following state:</div>
130
  <ul class="assets_list_layout_areas_status_choices">
131
  <li>
132
  <label for="assets_list_layout_plugin_area_status_expanded">
@@ -134,7 +134,7 @@ $availableForPro = '<a class="go-pro-link-no-style" target="_blank" href="' . WP
134
  checked="checked"
135
  type="radio"
136
  name="<?php echo WPACU_PLUGIN_ID . '_settings'; ?>[assets_list_layout_plugin_area_status]"
137
- value="expanded"> Expanded (Default)
138
  </label>
139
  </li>
140
  <li>
@@ -143,7 +143,7 @@ $availableForPro = '<a class="go-pro-link-no-style" target="_blank" href="' . WP
143
  type="radio"
144
  disabled="disabled"
145
  name="<?php echo WPACU_PLUGIN_ID . '_settings'; ?>[assets_list_layout_plugin_area_status]"
146
- value="contracted"> Contracted (Pro Version) <?php echo $availableForPro; ?>
147
  </label>
148
  </li>
149
  </ul>
@@ -152,12 +152,12 @@ $availableForPro = '<a class="go-pro-link-no-style" target="_blank" href="' . WP
152
 
153
  <div class="wpacu-clearfix"></div>
154
 
155
- <p style="margin-top: 10px;">These are various ways in which the list of assets that you will manage will show up. Depending on your preference, you might want to see the list of styles &amp; scripts first, or all together sorted in alphabetical order etc. Options that are disabled are available in the Pro version.</p>
156
  </td>
157
  </tr>
158
  <tr valign="top">
159
  <th scope="row">
160
- <label>On Assets List Layout Load, keep "Styles &amp; Scripts" area:</label>
161
  </th>
162
  <td>
163
  <ul class="assets_list_layout_areas_status_choices">
@@ -167,7 +167,7 @@ $availableForPro = '<a class="go-pro-link-no-style" target="_blank" href="' . WP
167
  <?php if (! $data['assets_list_layout_areas_status'] || $data['assets_list_layout_areas_status'] === 'expanded') { ?>checked="checked"<?php } ?>
168
  type="radio"
169
  name="<?php echo WPACU_PLUGIN_ID . '_settings'; ?>[assets_list_layout_areas_status]"
170
- value="expanded"> Expanded (Default)
171
  </label>
172
  </li>
173
  <li>
@@ -176,18 +176,18 @@ $availableForPro = '<a class="go-pro-link-no-style" target="_blank" href="' . WP
176
  <?php if ($data['assets_list_layout_areas_status'] === 'contracted') { ?>checked="checked"<?php } ?>
177
  type="radio"
178
  name="<?php echo WPACU_PLUGIN_ID . '_settings'; ?>[assets_list_layout_areas_status]"
179
- value="contracted"> Contracted
180
  </label>
181
  </li>
182
  </ul>
183
  <div class="wpacu-clearfix"></div>
184
 
185
- <p>Sometimes, when you have plenty of elements in the edit page, you might want to contract the list of assets when you're viewing the page as it will save space. This can be a good practice, especially when you finished optimising the pages and you don't want to keep seeing the long list of files every time you edit a page.</p>
186
  </td>
187
  </tr>
188
  <tr valign="top">
189
  <th scope="row">
190
- <label>On Assets List Layout Load, keep "Inline code associated with this handle" area:</label>
191
  </th>
192
  <td>
193
  <ul class="assets_list_inline_code_status_choices">
@@ -197,7 +197,7 @@ $availableForPro = '<a class="go-pro-link-no-style" target="_blank" href="' . WP
197
  <?php if (! $data['assets_list_inline_code_status'] || $data['assets_list_inline_code_status'] === 'expanded') { ?>checked="checked"<?php } ?>
198
  type="radio"
199
  name="<?php echo WPACU_PLUGIN_ID . '_settings'; ?>[assets_list_inline_code_status]"
200
- value="expanded"> Expanded (Default)
201
  </label>
202
  </li>
203
  <li>
@@ -206,20 +206,23 @@ $availableForPro = '<a class="go-pro-link-no-style" target="_blank" href="' . WP
206
  <?php if ($data['assets_list_inline_code_status'] === 'contracted') { ?>checked="checked"<?php } ?>
207
  type="radio"
208
  name="<?php echo WPACU_PLUGIN_ID . '_settings'; ?>[assets_list_inline_code_status]"
209
- value="contracted"> Contracted
210
  </label>
211
  </li>
212
  </ul>
213
  <div class="wpacu-clearfix"></div>
214
 
215
- <p>Some assets (CSS &amp; JavaScript) have inline code associate with them and often, they are quite large, making the asset row bigger and requiring you to scroll more until you reach a specific area. By setting it to "Contracted", it will hide all the inline code by default and you can view it by clicking on the toggle link inside the asset row.</p>
 
 
 
216
  </td>
217
  </tr>
218
  <tr valign="top">
219
  <th scope="row" class="setting_title">
220
- <label>Input Fields Style:</label>
221
- <p class="wpacu_subtitle"><small><em>How would you like to view the checkboxes / selectors?</em></small></p>
222
- <p class="wpacu_read_more"><a href="https://assetcleanup.com/docs/?p=95" target="_blank">Read More</a></p>
223
  </th>
224
  <td>
225
  <ul class="input_style_choices">
@@ -229,7 +232,7 @@ $availableForPro = '<a class="go-pro-link-no-style" target="_blank" href="' . WP
229
  <?php if (! $data['input_style'] || $data['input_style'] === 'enhanced') { ?>checked="checked"<?php } ?>
230
  type="radio"
231
  name="<?php echo WPACU_PLUGIN_ID . '_settings'; ?>[input_style]"
232
- value="enhanced"> Enhanced iPhone Style (Default)
233
  </label>
234
  </li>
235
  <li>
@@ -238,18 +241,18 @@ $availableForPro = '<a class="go-pro-link-no-style" target="_blank" href="' . WP
238
  <?php if ($data['input_style'] === 'standard') { ?>checked="checked"<?php } ?>
239
  type="radio"
240
  name="<?php echo WPACU_PLUGIN_ID . '_settings'; ?>[input_style]"
241
- value="standard"> Standard
242
  </label>
243
  </li>
244
  </ul>
245
  <div class="wpacu-clearfix"></div>
246
 
247
- <p>In case you prefer standard HTML checkboxes instead of the enhanced CSS3 iPhone style ones (on &amp; off) or you need a simple HTML layout in case you're using a screen reader software (e.g. for people with disabilities) which requires standard/clean HTML code, then you can choose "Standard" as an option.</p>
248
  </td>
249
  </tr>
250
  <tr valign="top">
251
  <th scope="row">
252
- <label for="wpacu_hide_core_files">Hide WordPress Core Files From The Assets List?</label>
253
  </th>
254
  <td>
255
  <label class="wpacu_switch">
@@ -259,8 +262,8 @@ $availableForPro = '<a class="go-pro-link-no-style" target="_blank" href="' . WP
259
  name="<?php echo WPACU_PLUGIN_ID . '_settings'; ?>[hide_core_files]"
260
  value="1" /> <span class="wpacu_slider wpacu_round"></span> </label>
261
  &nbsp;
262
- WordPress Core Files have handles such as 'jquery', 'wp-embed', 'comment-reply', 'dashicons' etc.
263
- <p style="margin-top: 10px;">They should only be unloaded by experienced developers when they are convinced that are not needed in particular situations. It's better to leave them loaded if you have any doubts whether you need them or not. By hiding them in the assets management list, you will see a smaller assets list (easier to manage) and you will avoid updating by mistake any option (unload, async, defer) related to any core file.</p>
264
  </td>
265
  </tr>
266
  </table>
10
  $styleTabContent = ($selectedTabArea === $tabIdArea) ? 'style="display: table-cell;"' : '';
11
 
12
  // [wpacu_lite]
13
+ $availableForPro = '<a class="go-pro-link-no-style" target="_blank" href="' . WPACU_PLUGIN_GO_PRO_URL . '?utm_source=plugin_usage_settings&utm_medium=assets_list_layout"><span class="wpacu-tooltip" style="width: 154px;">'.__('Click here to unlock it', WPACU_PLUGIN_TEXT_DOMAIN).'!</span> <img style="opacity: 0.6;" width="20" height="20" src="'.WPACU_PLUGIN_URL.'/assets/icons/icon-lock.svg" valign="top" alt="" /></a>';
14
  // [/wpacu_lite]
15
  ?>
16
  <div id="<?php echo $tabIdArea; ?>" class="wpacu-settings-tab-content" <?php echo $styleTabContent; ?>>
17
  <h2 class="wpacu-settings-area-title"><?php _e('Plugin Usage Preferences', WPACU_PLUGIN_TEXT_DOMAIN); ?></h2>
18
+ <p><?php _e('Choose how the assets are retrieved and whether you would like to see them within the Dashboard / Front-end view', WPACU_PLUGIN_TEXT_DOMAIN); ?>; <?php _e('Decide how the management list of CSS &amp; JavaScript files will show up and get sorted, depending on your preferences.', WPACU_PLUGIN_TEXT_DOMAIN); ?></p>
19
  <table class="wpacu-form-table">
20
  <tr valign="top">
21
  <th scope="row">
22
+ <label for="wpacu_dashboard"><?php _e('Manage in the Dashboard', WPACU_PLUGIN_TEXT_DOMAIN); ?></label>
23
  </th>
24
  <td>
25
  <label class="wpacu_switch">
29
  name="<?php echo WPACU_PLUGIN_ID . '_settings'; ?>[dashboard_show]"
30
  value="1" /> <span class="wpacu_slider wpacu_round"></span> </label>
31
  &nbsp;
32
+ <?php _e('This will show the list of assets in a meta box on edit the post (any type) / page within the Dashboard', WPACU_PLUGIN_TEXT_DOMAIN); ?>
33
+ <p><?php _e('The assets would be retrieved via AJAX call(s) that will fetch the post/page URL and extract all the styles &amp; scripts that are enqueued.', WPACU_PLUGIN_TEXT_DOMAIN); ?></p>
34
+ <p><?php _e('Note that sometimes the assets list is not loading within the Dashboard. That could be because "mod_security" Apache module is enabled or some securiy plugins are blocking the AJAX request. If this option doesn\'t work, consider managing the list in the front-end view.', WPACU_PLUGIN_TEXT_DOMAIN); ?></p>
35
 
36
  <div id="wpacu-settings-assets-retrieval-mode"
37
  <?php if (! ($data['dashboard_show'] == 1)) { echo 'style="display: none;"'; } ?>>
38
 
39
  <ul id="wpacu-dom-get-type-selections">
40
  <li>
41
+ <label for="wpacu_dom_get_type"><?php _e('Select a retrieval way', WPACU_PLUGIN_TEXT_DOMAIN); ?>:</label>
42
  </li>
43
  <li>
44
  <label>
46
  data-target="wpacu-dom-get-type-direct-info"
47
  <?php if ($data['dom_get_type'] === 'direct') { ?>checked="checked"<?php } ?>
48
  type="radio" name="<?php echo WPACU_PLUGIN_ID . '_settings'; ?>[dom_get_type]"
49
+ value="direct" /> <?php __('Direct', WPACU_PLUGIN_TEXT_DOMAIN); ?>
50
  </label>
51
  </li>
52
  <li>
66
  <li <?php if ($data['dom_get_type'] !== 'direct') { ?>style="display: none;"<?php } ?>
67
  class="wpacu-dom-get-type-info"
68
  id="wpacu-dom-get-type-direct-info">
69
+ <strong><?php _e('Direct', WPACU_PLUGIN_TEXT_DOMAIN); ?></strong> - <?php _e('This one makes an AJAX call directly on the URL for which the assets are retrieved, then an extra WordPress AJAX call to process the list. Sometimes, due to some external factors (e.g. mod_security module from Apache, security plugin or the fact that non-http is forced for the front-end view and the AJAX request will be blocked), this might not work and another choice method might work better. This used to be the only option available, prior to version 1.2.4.4 and is set as default.', WPACU_PLUGIN_TEXT_DOMAIN); ?>
70
  </li>
71
  <li <?php if ($data['dom_get_type'] !== 'wp_remote_post') { ?>style="display: none;"<?php } ?>
72
  class="wpacu-dom-get-type-info"
73
  id="wpacu-dom-get-type-wp-remote-post-info">
74
+ <strong>WP Remote Post</strong> - <?php _e('It makes a WordPress AJAX call and gets the HTML source code through wp_remote_post(). This one is less likely to be blocked as it is made on the same protocol (no HTTP request from HTTPS). However, in some cases (e.g. a different load balancer configuration), this might not work when the call to fetch a domain\'s URL (your website) is actually made from the same domain.', WPACU_PLUGIN_TEXT_DOMAIN); ?>
75
  </li>
76
  </ul>
77
  </div>
78
 
79
  <div id="wpacu-settings-hide-meta-boxes">
80
+ <p><?php _e('Whether you have this option enabled or not, the post/page plugin\'s meta boxes will always be generated. If you wish to hide them completely for any reason (e.g. you rarely manage the assets and you want to reduce cluttering in the edit post/page area, especially if you do lots of edits), you can do so using the options below (<em>don\'t forget to uncheck them whenever you wish to manage the CSS/JS assets again</em>)', WPACU_PLUGIN_TEXT_DOMAIN); ?>:</p>
81
  <ul>
82
  <li><label for="wpacu-hide-assets-meta-box-checkbox"><input <?php echo (($data['hide_assets_meta_box'] == 1) ? 'checked="checked"' : ''); ?> id="wpacu-hide-assets-meta-box-checkbox" type="checkbox" name="<?php echo WPACU_PLUGIN_ID . '_settings'; ?>[hide_assets_meta_box]" value="1" /> Hide "Asset CleanUp Pro: CSS &amp; JavaScript Manager" meta box</label></li>
83
  <li><label for="wpacu-hide-options-meta-box-checkbox"><input <?php echo (($data['hide_options_meta_box'] == 1) ? 'checked="checked"' : ''); ?> id="wpacu-hide-options-meta-box-checkbox" type="checkbox" name="<?php echo WPACU_PLUGIN_ID . '_settings'; ?>[hide_options_meta_box]" value="1" /> Hide "Asset CleanUp Pro: Options" meta box</label></li>
87
  </tr>
88
  <tr valign="top">
89
  <th scope="row">
90
+ <label for="wpacu_frontend"><?php _e('Manage in the Front-end', WPACU_PLUGIN_TEXT_DOMAIN); ?></label>
91
  </th>
92
  <td>
93
  <label class="wpacu_switch">
101
  <p style="margin-top: 10px;">The area will be shown through the <code>wp_footer</code> action so in case you do not see the asset list at the bottom of the page, make sure the theme is using <a href="https://codex.wordpress.org/Function_Reference/wp_footer"><code>wp_footer()</code></a> function before the <code>&lt;/body&gt;</code> tag. Any theme that follows the standards should have it. If not, you will have to add it to make sure other plugins and code from functions.php will work fine.</p>
102
 
103
  <div id="wpacu-settings-frontend-exceptions" <?php if (! ($data['frontend_show'] == 1)) { echo 'style="display: none;"'; } ?>>
104
+ <div style="margin: 0 0 10px;"><label for="wpacu_frontend_show_exceptions"><span class="dashicons dashicons-info"></span> In some situations, you might want to avoid showing the CSS/JS list at the bottom of the pages (e.g. you're using a page builder such as Divi, you often load specific pages as an admin and you don't need to manage assets there or you do it rarely etc.). If that's the case, you can use the following textarea to prevent the list from showing up on pages where the <strong>URI contains</strong> the specified strings (<?php _e('one per line', WPACU_PLUGIN_TEXT_DOMAIN); ?>):</label></div>
105
  <textarea id="wpacu_frontend_show_exceptions"
106
  name="<?php echo WPACU_PLUGIN_ID . '_settings'; ?>[frontend_show_exceptions]"
107
  rows="5"
112
  </tr>
113
  <tr valign="top">
114
  <th scope="row">
115
+ <label for="wpacu_assets_list_layout"><?php _e('Assets List Layout', WPACU_PLUGIN_TEXT_DOMAIN); ?></label>
116
  </th>
117
  <td>
118
  <label>
119
  <select id="wpacu_assets_list_layout"
120
  name="<?php echo WPACU_PLUGIN_ID . '_settings'; ?>[assets_list_layout]">
121
+ <option <?php if ($data['assets_list_layout'] === 'by-location') { echo 'selected="selected"'; } ?> value="by-location"><?php _e('All Styles &amp; Scripts', WPACU_PLUGIN_TEXT_DOMAIN); ?> &#10230; <?php _e('One list grouped by location (themes, plugins, core &amp; external)', WPACU_PLUGIN_TEXT_DOMAIN); ?></option>
122
+ <option <?php if ($data['assets_list_layout'] === 'by-position') { echo 'selected="selected"'; } ?> value="by-position"><?php _e('All Styles &amp; Scripts', WPACU_PLUGIN_TEXT_DOMAIN); ?> &#10230; <?php _e('One list grouped by tag position: &lt;head&gt; &amp; &lt;body&gt;', WPACU_PLUGIN_TEXT_DOMAIN); ?></option>
123
+ <option <?php if (in_array($data['assets_list_layout'], array('two-lists', 'default'))) { echo 'selected="selected"'; } ?> value="two-lists"><?php _e('All Styles', WPACU_PLUGIN_TEXT_DOMAIN); ?> + <?php _e('All Scripts', WPACU_PLUGIN_TEXT_DOMAIN); ?> &#10230; <?php _e('Two lists', WPACU_PLUGIN_TEXT_DOMAIN); ?></option>
124
+ <option disabled="disabled" value="all"><?php _e('All Styles &amp; Scripts', WPACU_PLUGIN_TEXT_DOMAIN); ?> &#10230; <?php _e('One list', WPACU_PLUGIN_TEXT_DOMAIN); ?> (<?php _e('Pro Version', WPACU_PLUGIN_TEXT_DOMAIN); ?>)</option>
125
  </select>
126
  </label>
127
 
128
  <div id="wpacu-assets-list-by-location-selected" style="margin: 10px 0; <?php if ($data['assets_list_layout'] !== 'by-location') { ?> display: none; <?php } ?>">
129
+ <div style="margin-bottom: 6px;"><?php _e('When list is grouped by location, keep the assets from each of the plugins in the following state', WPACU_PLUGIN_TEXT_DOMAIN); ?>:</div>
130
  <ul class="assets_list_layout_areas_status_choices">
131
  <li>
132
  <label for="assets_list_layout_plugin_area_status_expanded">
134
  checked="checked"
135
  type="radio"
136
  name="<?php echo WPACU_PLUGIN_ID . '_settings'; ?>[assets_list_layout_plugin_area_status]"
137
+ value="expanded"> <?php _e('Expanded', WPACU_PLUGIN_TEXT_DOMAIN); ?> (<?php _e('Default', WPACU_PLUGIN_TEXT_DOMAIN); ?>)
138
  </label>
139
  </li>
140
  <li>
143
  type="radio"
144
  disabled="disabled"
145
  name="<?php echo WPACU_PLUGIN_ID . '_settings'; ?>[assets_list_layout_plugin_area_status]"
146
+ value="contracted"> <?php _e('Contracted', WPACU_PLUGIN_TEXT_DOMAIN); ?> (<?php _e('Pro Version', WPACU_PLUGIN_TEXT_DOMAIN); ?>) <?php echo $availableForPro; ?>
147
  </label>
148
  </li>
149
  </ul>
152
 
153
  <div class="wpacu-clearfix"></div>
154
 
155
+ <p style="margin-top: 10px;"><?php _e('These are various ways in which the list of assets that you will manage will show up. Depending on your preference, you might want to see the list of styles &amp; scripts first, or all together sorted in alphabetical order etc.', WPACU_PLUGIN_TEXT_DOMAIN); ?> <?php _e('Options that are disabled are available in the Pro version.', WPACU_PLUGIN_TEXT_DOMAIN); ?></p>
156
  </td>
157
  </tr>
158
  <tr valign="top">
159
  <th scope="row">
160
+ <label><?php _e('On Assets List Layout Load, keep "Styles &amp; Scripts" area:', WPACU_PLUGIN_TEXT_DOMAIN); ?></label>
161
  </th>
162
  <td>
163
  <ul class="assets_list_layout_areas_status_choices">
167
  <?php if (! $data['assets_list_layout_areas_status'] || $data['assets_list_layout_areas_status'] === 'expanded') { ?>checked="checked"<?php } ?>
168
  type="radio"
169
  name="<?php echo WPACU_PLUGIN_ID . '_settings'; ?>[assets_list_layout_areas_status]"
170
+ value="expanded"> <?php _e('Expanded', WPACU_PLUGIN_TEXT_DOMAIN); ?> (<?php _e('Default', WPACU_PLUGIN_TEXT_DOMAIN); ?>)
171
  </label>
172
  </li>
173
  <li>
176
  <?php if ($data['assets_list_layout_areas_status'] === 'contracted') { ?>checked="checked"<?php } ?>
177
  type="radio"
178
  name="<?php echo WPACU_PLUGIN_ID . '_settings'; ?>[assets_list_layout_areas_status]"
179
+ value="contracted"> <?php _e('Contracted', WPACU_PLUGIN_TEXT_DOMAIN); ?>
180
  </label>
181
  </li>
182
  </ul>
183
  <div class="wpacu-clearfix"></div>
184
 
185
+ <p><?php _e('Sometimes, when you have plenty of elements in the edit page, you might want to contract the list of assets when you\'re viewing the page as it will save space. This can be a good practice, especially when you finished optimising the pages and you don\'t want to keep seeing the long list of files every time you edit a page.', WPACU_PLUGIN_TEXT_DOMAIN); ?></p>
186
  </td>
187
  </tr>
188
  <tr valign="top">
189
  <th scope="row">
190
+ <label><?php _e('On Assets List Layout Load, keep "Inline code associated with this handle" area', WPACU_PLUGIN_TEXT_DOMAIN); ?>:</label>
191
  </th>
192
  <td>
193
  <ul class="assets_list_inline_code_status_choices">
197
  <?php if (! $data['assets_list_inline_code_status'] || $data['assets_list_inline_code_status'] === 'expanded') { ?>checked="checked"<?php } ?>
198
  type="radio"
199
  name="<?php echo WPACU_PLUGIN_ID . '_settings'; ?>[assets_list_inline_code_status]"
200
+ value="expanded"> <?php _e('Expanded (Default)', WPACU_PLUGIN_TEXT_DOMAIN); ?>
201
  </label>
202
  </li>
203
  <li>
206
  <?php if ($data['assets_list_inline_code_status'] === 'contracted') { ?>checked="checked"<?php } ?>
207
  type="radio"
208
  name="<?php echo WPACU_PLUGIN_ID . '_settings'; ?>[assets_list_inline_code_status]"
209
+ value="contracted"> <?php _e('Contracted', WPACU_PLUGIN_TEXT_DOMAIN); ?>
210
  </label>
211
  </li>
212
  </ul>
213
  <div class="wpacu-clearfix"></div>
214
 
215
+ <p><?php echo sprintf(
216
+ __('Some assets (CSS &amp; JavaScript) have inline code associate with them and often, they are quite large, making the asset row bigger and requiring you to scroll more until you reach a specific area. By setting it to "%s", it will hide all the inline code by default and you can view it by clicking on the toggle link inside the asset row.', WPACU_PLUGIN_TEXT_DOMAIN),
217
+ __('Contracted', WPACU_PLUGIN_TEXT_DOMAIN)
218
+ ); ?></p>
219
  </td>
220
  </tr>
221
  <tr valign="top">
222
  <th scope="row" class="setting_title">
223
+ <label><?php _e('Input Fields Style', WPACU_PLUGIN_TEXT_DOMAIN); ?>:</label>
224
+ <p class="wpacu_subtitle"><small><em><?php _e('How would you like to view the checkboxes / selectors?', WPACU_PLUGIN_TEXT_DOMAIN); ?></em></small></p>
225
+ <p class="wpacu_read_more"><a href="https://assetcleanup.com/docs/?p=95" target="_blank"><?php _e('Read More', WPACU_PLUGIN_TEXT_DOMAIN); ?></a></p>
226
  </th>
227
  <td>
228
  <ul class="input_style_choices">
232
  <?php if (! $data['input_style'] || $data['input_style'] === 'enhanced') { ?>checked="checked"<?php } ?>
233
  type="radio"
234
  name="<?php echo WPACU_PLUGIN_ID . '_settings'; ?>[input_style]"
235
+ value="enhanced"> <?php _e('Enhanced iPhone Style (Default)', WPACU_PLUGIN_TEXT_DOMAIN); ?>
236
  </label>
237
  </li>
238
  <li>
241
  <?php if ($data['input_style'] === 'standard') { ?>checked="checked"<?php } ?>
242
  type="radio"
243
  name="<?php echo WPACU_PLUGIN_ID . '_settings'; ?>[input_style]"
244
+ value="standard"> <?php _e('Standard', WPACU_PLUGIN_TEXT_DOMAIN); ?>
245
  </label>
246
  </li>
247
  </ul>
248
  <div class="wpacu-clearfix"></div>
249
 
250
+ <p><?php _e('In case you prefer standard HTML checkboxes instead of the enhanced CSS3 iPhone style ones (on &amp; off) or you need a simple HTML layout in case you\'re using a screen reader software (e.g. for people with disabilities) which requires standard/clean HTML code, then you can choose "Standard" as an option.', WPACU_PLUGIN_TEXT_DOMAIN); ?></p>
251
  </td>
252
  </tr>
253
  <tr valign="top">
254
  <th scope="row">
255
+ <label for="wpacu_hide_core_files"><?php _e('Hide WordPress Core Files From The Assets List?', WPACU_PLUGIN_TEXT_DOMAIN); ?></label>
256
  </th>
257
  <td>
258
  <label class="wpacu_switch">
262
  name="<?php echo WPACU_PLUGIN_ID . '_settings'; ?>[hide_core_files]"
263
  value="1" /> <span class="wpacu_slider wpacu_round"></span> </label>
264
  &nbsp;
265
+ <?php echo sprintf(__('WordPress Core Files have handles such as %s', WPACU_PLUGIN_TEXT_DOMAIN), "'jquery', 'wp-embed', 'comment-reply', 'dashicons'"); ?> etc.
266
+ <p style="margin-top: 10px;"><?php _e('They should only be unloaded by experienced developers when they are convinced that are not needed in particular situations. It\'s better to leave them loaded if you have any doubts whether you need them or not. By hiding them in the assets management list, you will see a smaller assets list (easier to manage) and you will avoid updating by mistake any option (unload, async, defer) related to any core file.', WPACU_PLUGIN_TEXT_DOMAIN); ?></p>
267
  </td>
268
  </tr>
269
  </table>
templates/_admin-page-settings-plugin-areas/_strip-the-fat.php CHANGED
@@ -21,11 +21,11 @@ $styleTabContent = ($selectedTabArea === $tabIdArea) ? 'style="display: table-ce
21
  <p>Let's suppose you're optimising the homepage that has a total of 20 CSS/JS files loading and decided that 8 CSS &amp; JavaScript files are not needed there. Once they are prevented from loading (not deleted or altered in any way from their original source, this plugin doesn't do that), the remaining 12 files will be minified/combined (if you have this option enabled) by either <?php echo WPACU_PLUGIN_TITLE; ?>, WP Rocket or other plugin you decided to do this and saved into smaller and less files. This will end up in a decreased total page size, deferred unused CSS &amp; less HTTP requests resulting in a faster page load and a higher page speed performance score (via tools such as GTMetrix).</p>
22
 
23
  <hr />
24
- <div style="margin: 20px 0 10px;"><strong style="font-size: 15px; line-height: 17px;">Is a decrease in the total page size or a higher page speed score guaranteed?</strong></div>
25
  <p>As long as you will prevent useless files from loading, then you will for sure have a lighter &amp; faster website. If anything changes in your hosting configuration, the size of your images or any external scripts etc. that you're website is loading, then you could end up with a slower website and that is not dependent on <?php echo WPACU_PLUGIN_TITLE; ?> nor any other WordPress performance plugin as there are external things which will never depend entirely on a plugin.</p>
26
 
27
  <hr />
28
- <div style="margin: 20px 0 10px;"><strong style="font-size: 15px; line-height: 17px;">Can this plugin make the pages load slower?</strong></div>
29
  <p><?php echo WPACU_PLUGIN_TITLE; ?> doesn't add any extra files to load in the front-end view that will increase the number of HTTP requests in any way as it will defy its purpose. It's main task is to prevent other files from loading and cleaning up the HTML code. Moreover, by enabling concatenation (if your website is not using the HTTP/2 protocol), you will reduce the number of HTTP requests further. If you're using another plugin that also has an option for minification/concatenation and you have enabled the feature on both plugins (never do it), or haven't configured something the right way, you could end up with extra CSS/JS loaded that will eventually lead to a poorer page speed score and a slower website.</p>
30
  <p><?php echo WPACU_PLUGIN_TITLE; ?> will never alter (in any way) or delete CSS &amp; JS files from their original source (e.g. plugins, themes). Files created through minification/concatenation are cached and stored in <em>/wp-content/cache/asset-cleanup/</em> directory.</p>
31
  <hr />
@@ -36,5 +36,5 @@ $styleTabContent = ($selectedTabArea === $tabIdArea) ? 'style="display: table-ce
36
  <?php echo (($data['wiki_read'] == 1) ? 'checked="checked"' : ''); ?>
37
  name="<?php echo WPACU_PLUGIN_ID . '_settings'; ?>[wiki_read]"
38
  value="1" /> <span class="wpacu_slider wpacu_round"></span> </label>
39
- I understand how the plugin works and I will make sure to make proper tests (via "Test Mode" if necessary) after the changes I'm making. I'm aware that unloading the wrong CSS/JS files can break the layout and front-end functionality of the pages I'm optimising.
40
  </div>
21
  <p>Let's suppose you're optimising the homepage that has a total of 20 CSS/JS files loading and decided that 8 CSS &amp; JavaScript files are not needed there. Once they are prevented from loading (not deleted or altered in any way from their original source, this plugin doesn't do that), the remaining 12 files will be minified/combined (if you have this option enabled) by either <?php echo WPACU_PLUGIN_TITLE; ?>, WP Rocket or other plugin you decided to do this and saved into smaller and less files. This will end up in a decreased total page size, deferred unused CSS &amp; less HTTP requests resulting in a faster page load and a higher page speed performance score (via tools such as GTMetrix).</p>
22
 
23
  <hr />
24
+ <div style="margin: 20px 0 10px;"><strong style="font-size: 15px; line-height: 17px;"><?php _e('Is a decrease in the total page size or a higher page speed score guaranteed?', WPACU_PLUGIN_TEXT_DOMAIN); ?></strong></div>
25
  <p>As long as you will prevent useless files from loading, then you will for sure have a lighter &amp; faster website. If anything changes in your hosting configuration, the size of your images or any external scripts etc. that you're website is loading, then you could end up with a slower website and that is not dependent on <?php echo WPACU_PLUGIN_TITLE; ?> nor any other WordPress performance plugin as there are external things which will never depend entirely on a plugin.</p>
26
 
27
  <hr />
28
+ <div style="margin: 20px 0 10px;"><strong style="font-size: 15px; line-height: 17px;"><?php _e('Can this plugin make the pages load slower?', WPACU_PLUGIN_TEXT_DOMAIN); ?></strong></div>
29
  <p><?php echo WPACU_PLUGIN_TITLE; ?> doesn't add any extra files to load in the front-end view that will increase the number of HTTP requests in any way as it will defy its purpose. It's main task is to prevent other files from loading and cleaning up the HTML code. Moreover, by enabling concatenation (if your website is not using the HTTP/2 protocol), you will reduce the number of HTTP requests further. If you're using another plugin that also has an option for minification/concatenation and you have enabled the feature on both plugins (never do it), or haven't configured something the right way, you could end up with extra CSS/JS loaded that will eventually lead to a poorer page speed score and a slower website.</p>
30
  <p><?php echo WPACU_PLUGIN_TITLE; ?> will never alter (in any way) or delete CSS &amp; JS files from their original source (e.g. plugins, themes). Files created through minification/concatenation are cached and stored in <em>/wp-content/cache/asset-cleanup/</em> directory.</p>
31
  <hr />
36
  <?php echo (($data['wiki_read'] == 1) ? 'checked="checked"' : ''); ?>
37
  name="<?php echo WPACU_PLUGIN_ID . '_settings'; ?>[wiki_read]"
38
  value="1" /> <span class="wpacu_slider wpacu_round"></span> </label>
39
+ <?php echo sprintf(__('I understand how the plugin works and I will make sure to make proper tests (via "%s" if necessary) after the changes I\'m making.', WPACU_PLUGIN_TEXT_DOMAIN), __('Test Mode', WPACU_PLUGIN_TEXT_DOMAIN)); ?> <?php _e('I\'m aware that unloading the wrong CSS/JS files can break the layout and front-end functionality of the pages I\'m optimising.', WPACU_PLUGIN_TEXT_DOMAIN); ?>
40
  </div>
templates/_admin-page-settings-plugin-areas/_test-mode.php CHANGED
@@ -11,13 +11,13 @@ $styleTabContent = ($selectedTabArea === $tabIdArea) ? 'style="display: table-ce
11
  ?>
12
  <div id="<?php echo $tabIdArea; ?>" class="wpacu-settings-tab-content" <?php echo $styleTabContent; ?>>
13
  <h2 class="wpacu-settings-area-title"><?php _e('Test Mode', WPACU_PLUGIN_TEXT_DOMAIN); ?></h2>
14
- <p>Have your visitors load the website without any Asset CleanUp settings while you're going through the plugin setup and unloading the useless CSS &amp; JavaScript!</p>
15
  <table class="wpacu-form-table">
16
  <tr valign="top">
17
  <th scope="row" class="setting_title">
18
- <label for="wpacu_enable_test_mode">Enable Test Mode?</label>
19
- <p class="wpacu_subtitle"><small><em>Apply plugin's changes for the admin only</em></small></p>
20
- <p class="wpacu_read_more"><a target="_blank" href="https://assetcleanup.com/docs/?p=84">Read More</a></p>
21
  </th>
22
  <td>
23
  <label class="wpacu_switch">
@@ -27,13 +27,18 @@ $styleTabContent = ($selectedTabArea === $tabIdArea) ? 'style="display: table-ce
27
  name="<?php echo WPACU_PLUGIN_ID . '_settings'; ?>[test_mode]"
28
  value="1" /> <span class="wpacu_slider wpacu_round"></span> </label>
29
  &nbsp;
30
- This is great for debugging when you're going through trial and error while removing unneeded CSS &amp; JavaScript on your website.
31
- <p><strong>Your visitors will load the website with all the settings &amp; assets loaded (just like it was before you activated the plugin). Only YOU (the logged-in administrator) will see the plugin's settings &amp; unload rules applied.</strong></p>
32
- <p>For instance, you have an eCommerce website (e.g. WooCommerce, Easy Digital Downloads), and you're worried that unloading one wrong asset could break the "add to cart" functionality or the layout of the product page. You can enable this option, do the unloading for the CSS &amp; JavaScript files you believe are not needed on certain pages, test to check if everything is alright, and then disable test mode to enable the unloading for your visitors too (not only the admin).</p>
 
 
 
 
 
33
 
34
  <div class="wpacu-warning">
35
- <p style="margin-top: 0;"><span class="dashicons dashicons-info"></span> <strong>Important:</strong> If you're using page speed test tools such as GTMetrix, Pingdom, Google PageSpeed Insights, etc., while test mode is enabled, you will not see any improvements in the reports because, technically, Asset CleanUp plugin is deactivated for guests users and anyone else (including bots and GTMetrix visits), the changes you made being visible only to you.</p>
36
- <p>Once everything is alright with the way your websites loads, after you stripped the "fat" from your pages, you can disable test mode to apply the changes to everyone and then run tests via GTMetrix or other similar tools.</p>
37
  </div>
38
  </td>
39
  </tr>
11
  ?>
12
  <div id="<?php echo $tabIdArea; ?>" class="wpacu-settings-tab-content" <?php echo $styleTabContent; ?>>
13
  <h2 class="wpacu-settings-area-title"><?php _e('Test Mode', WPACU_PLUGIN_TEXT_DOMAIN); ?></h2>
14
+ <p><?php echo sprintf(__('Have your visitors load the website without any %s settings while you\'re going through the plugin setup and unloading the useless CSS &amp; JavaScript!', WPACU_PLUGIN_TEXT_DOMAIN), WPACU_PLUGIN_TITLE); ?></p>
15
  <table class="wpacu-form-table">
16
  <tr valign="top">
17
  <th scope="row" class="setting_title">
18
+ <label for="wpacu_enable_test_mode"><?php _e('Enable Test Mode?', WPACU_PLUGIN_TEXT_DOMAIN); ?></label>
19
+ <p class="wpacu_subtitle"><small><em><?php _e('Apply plugin\'s changes for the admin only', WPACU_PLUGIN_TEXT_DOMAIN); ?></em></small></p>
20
+ <p class="wpacu_read_more"><a target="_blank" href="https://assetcleanup.com/docs/?p=84"><?php _e('Read More', WPACU_PLUGIN_TEXT_DOMAIN); ?></a></p>
21
  </th>
22
  <td>
23
  <label class="wpacu_switch">
27
  name="<?php echo WPACU_PLUGIN_ID . '_settings'; ?>[test_mode]"
28
  value="1" /> <span class="wpacu_slider wpacu_round"></span> </label>
29
  &nbsp;
30
+ <?php _e('This is great for debugging when you\'re going through trial and error while removing unneeded CSS &amp; JavaScript on your website.', WPACU_PLUGIN_TEXT_DOMAIN); ?>
31
+
32
+ <div style="margin-top: 10px;" class="wpacu-warning">
33
+ <p style="margin-top: 0;"><?php _e('Your visitors will load the website with all the settings &amp; assets loaded (just like it was before you activated the plugin). Only YOU (the logged-in administrator) will see the plugin\'s settings &amp; unload rules applied.', WPACU_PLUGIN_TEXT_DOMAIN); ?></p>
34
+ <p><?php _e('To view the website as a guest visitor, just make sure you access it from a browser where you\'re not logged in, or you can test it in Incognito (Private) mode.', WPACU_PLUGIN_TEXT_DOMAIN); ?> (e.g. to access it in Chrome yo go to <em>File -&gt; New Incognito Window</em>, while on Firefox &amp; Safari, you access it via <em>File -&gt; New Private Window</em>) <img src="<?php echo WPACU_PLUGIN_URL; ?>/assets/icons/icon-incognito.png" alt="" style="height: 22px; width: 22px; vertical-align: middle; margin-right: 5px;" /></p>
35
+ </div>
36
+
37
+ <p><strong><?php _e('Example', WPACU_PLUGIN_TEXT_DOMAIN); ?>:</strong> <?php _e('For instance, you have an eCommerce website (e.g. WooCommerce, Easy Digital Downloads), and you\'re worried that unloading one wrong asset could break the "add to cart" functionality or the layout of the product page. You can enable this option, do the unloading for the CSS &amp; JavaScript files you believe are not needed on certain pages, test to check if everything is alright, and then disable test mode to enable the unloading for your visitors too (not only the admin).', WPACU_PLUGIN_TEXT_DOMAIN); ?></p>
38
 
39
  <div class="wpacu-warning">
40
+ <p style="margin-top: 0;"><span class="dashicons dashicons-info"></span> <?php echo sprintf(__('<strong>Important:</strong> If you\'re using page speed test tools such as GTMetrix, Pingdom, Google PageSpeed Insights, etc., while test mode is enabled, you will not see any improvements in the reports because, technically, %s plugin is deactivated for guests users and anyone else (including bots and GTMetrix visits), the changes you made being visible only to you.', WPACU_PLUGIN_TEXT_DOMAIN), WPACU_PLUGIN_TITLE); ?></p>
41
+ <p><?php _e('Once everything is alright with the way your websites loads, after you stripped the "fat" from your pages, you can disable test mode to apply the changes to everyone and then run tests via GTMetrix or other similar tools.', WPACU_PLUGIN_TEXT_DOMAIN); ?></p>
42
  </div>
43
  </td>
44
  </tr>
templates/_top-area.php CHANGED
@@ -6,41 +6,43 @@ if (! isset($data)) {
6
  exit;
7
  }
8
 
9
- $wpacu_top_area_links = array(
 
 
10
  'admin.php?page=wpassetcleanup_settings' => array(
11
  'icon' => '<span class="dashicons dashicons-admin-generic"></span>',
12
- 'title' => 'Settings',
13
  'page' => 'wpassetcleanup_settings'
14
  ),
15
- 'admin.php?page=wpassetcleanup_assets_manager' => array(
16
  'icon' => '<span class="dashicons dashicons-media-code"></span>',
17
- 'title' => 'CSS &amp; JavaScript Load Manager',
18
  'page' => 'wpassetcleanup_assets_manager',
19
  ),
20
  'admin.php?page=wpassetcleanup_bulk_unloads' => array(
21
  'icon' => '<span class="dashicons dashicons-networking"></span>',
22
- 'title' => 'Bulk Changes',
23
  'page' => 'wpassetcleanup_bulk_unloads'
24
  ),
25
  'admin.php?page=wpassetcleanup_tools' => array(
26
  'icon' => '<span class="dashicons dashicons-admin-tools"></span>',
27
- 'title' => 'Tools',
28
  'page' => 'wpassetcleanup_tools'
29
  ),
30
  'admin.php?page=wpassetcleanup_license' => array(
31
  'icon' => '<span class="dashicons dashicons-awards"></span>',
32
- 'title' => 'License',
33
  'page' => 'wpassetcleanup_license'
34
  ),
35
  'admin.php?page=wpassetcleanup_get_help' => array(
36
  'icon' => '<span class="dashicons dashicons-sos"></span>',
37
- 'title' => 'Help',
38
  'page' => 'wpassetcleanup_get_help'
39
  ),
40
  // [wpacu_lite]
41
  'admin.php?page=wpassetcleanup_go_pro' => array(
42
  'icon' => '<span class="dashicons dashicons-star-filled"></span>',
43
- 'title' => 'Go Pro',
44
  'page' => 'wpassetcleanup_go_pro',
45
  'target' => '_blank'
46
  )
@@ -49,18 +51,27 @@ $wpacu_top_area_links = array(
49
 
50
  global $current_screen;
51
 
52
- $wpacu_current_page = str_replace(array('asset-cleanup_page_', 'toplevel_page_'), '', $current_screen->base);
 
53
  ?>
54
- <div id="wpacu-logo-area">
55
- <img alt="" src="<?php echo WPACU_PLUGIN_URL; ?>/assets/images/asset-cleanup-logo.png" />
 
 
 
 
 
56
  </div>
57
 
58
  <div class="wpacu-tabs wpacu-tabs-style-topline">
59
  <nav>
60
  <ul>
61
- <?php foreach ($wpacu_top_area_links as $wpacu_link => $wpacu_info) { ?>
62
- <li <?php if ($wpacu_current_page === $wpacu_info['page']) { echo 'class="wpacu-tab-current"'; } ?>>
63
- <a <?php if (isset($wpacu_info['target']) && $wpacu_info['target'] === '_blank') { ?>target="_blank"<?php } ?> href="<?php echo $wpacu_link; ?>"><?php echo $wpacu_info['icon']; ?> <span><?php echo $wpacu_info['title']; ?></span></a>
 
 
 
64
  </li>
65
  <?php } ?>
66
  </ul>
6
  exit;
7
  }
8
 
9
+ use WpAssetCleanUp\Misc;
10
+
11
+ $wpacuTopAreaLinks = array(
12
  'admin.php?page=wpassetcleanup_settings' => array(
13
  'icon' => '<span class="dashicons dashicons-admin-generic"></span>',
14
+ 'title' => __('Settings', WPACU_PLUGIN_TEXT_DOMAIN),
15
  'page' => 'wpassetcleanup_settings'
16
  ),
17
+ 'admin.php?page=wpassetcleanup_assets_manager' => array(
18
  'icon' => '<span class="dashicons dashicons-media-code"></span>',
19
+ 'title' => __('CSS &amp; JavaScript Load Manager', WPACU_PLUGIN_TEXT_DOMAIN),
20
  'page' => 'wpassetcleanup_assets_manager',
21
  ),
22
  'admin.php?page=wpassetcleanup_bulk_unloads' => array(
23
  'icon' => '<span class="dashicons dashicons-networking"></span>',
24
+ 'title' => __('Bulk Changes', WPACU_PLUGIN_TEXT_DOMAIN),
25
  'page' => 'wpassetcleanup_bulk_unloads'
26
  ),
27
  'admin.php?page=wpassetcleanup_tools' => array(
28
  'icon' => '<span class="dashicons dashicons-admin-tools"></span>',
29
+ 'title' => __('Tools', WPACU_PLUGIN_TEXT_DOMAIN),
30
  'page' => 'wpassetcleanup_tools'
31
  ),
32
  'admin.php?page=wpassetcleanup_license' => array(
33
  'icon' => '<span class="dashicons dashicons-awards"></span>',
34
+ 'title' => __('License', WPACU_PLUGIN_TEXT_DOMAIN),
35
  'page' => 'wpassetcleanup_license'
36
  ),
37
  'admin.php?page=wpassetcleanup_get_help' => array(
38
  'icon' => '<span class="dashicons dashicons-sos"></span>',
39
+ 'title' => __('Help', WPACU_PLUGIN_TEXT_DOMAIN),
40
  'page' => 'wpassetcleanup_get_help'
41
  ),
42
  // [wpacu_lite]
43
  'admin.php?page=wpassetcleanup_go_pro' => array(
44
  'icon' => '<span class="dashicons dashicons-star-filled"></span>',
45
+ 'title' => __('Go Pro', WPACU_PLUGIN_TEXT_DOMAIN),
46
  'page' => 'wpassetcleanup_go_pro',
47
  'target' => '_blank'
48
  )
51
 
52
  global $current_screen;
53
 
54
+ $wpacuCurrentPage = str_replace(array('asset-cleanup_page_', 'toplevel_page_'), '', $current_screen->base);
55
+ $wpacuDefaultPageUrl = admin_url(Misc::arrayKeyFirst($wpacuTopAreaLinks));
56
  ?>
57
+ <div id="wpacu-top-area">
58
+ <div id="wpacu-logo-wrap">
59
+ <a href="<?php echo $wpacuDefaultPageUrl; ?>">
60
+ <img alt="" src="<?php echo WPACU_PLUGIN_URL; ?>/assets/images/asset-cleanup-logo.png" />
61
+ <div class="wpacu-pro-sign wpacu-lite">LITE</div>
62
+ </a>
63
+ </div>
64
  </div>
65
 
66
  <div class="wpacu-tabs wpacu-tabs-style-topline">
67
  <nav>
68
  <ul>
69
+ <?php foreach ($wpacuTopAreaLinks as $wpacuLink => $wpacuInfo) { ?>
70
+ <li <?php if ($wpacuCurrentPage === $wpacuInfo['page']) { echo 'class="wpacu-tab-current"'; } ?>>
71
+ <a <?php if (isset($wpacuInfo['target']) && $wpacuInfo['target'] === '_blank') { ?> target="_blank" <?php } ?>
72
+ href="<?php echo admin_url($wpacuLink); ?>">
73
+ <?php echo $wpacuInfo['icon']; ?> <span><?php echo $wpacuInfo['title']; ?></span>
74
+ </a>
75
  </li>
76
  <?php } ?>
77
  </ul>
templates/admin-page-assets-manager.php CHANGED
@@ -11,8 +11,8 @@ include_once '_top-area.php';
11
 
12
  <div class="wpacu-wrap">
13
  <nav class="nav-tab-wrapper">
14
- <a href="<?php echo admin_url('admin.php?page=wpassetcleanup_assets_manager&wpacu_for=homepage'); ?>" class="nav-tab <?php if ($data['for'] === 'homepage') { ?>nav-tab-active<?php } ?>">Homepage</a>
15
- <a href="<?php echo admin_url('admin.php?page=wpassetcleanup_assets_manager&wpacu_for=all_other_pages'); ?>" class="nav-tab <?php if ($data['for'] === 'all_other_pages') { ?>nav-tab-active<?php } ?>">All Other Pages</a>
16
  </nav>
17
 
18
  <div class="wpacu-clearfix"></div>
11
 
12
  <div class="wpacu-wrap">
13
  <nav class="nav-tab-wrapper">
14
+ <a href="<?php echo admin_url('admin.php?page=wpassetcleanup_assets_manager&wpacu_for=homepage'); ?>" class="nav-tab <?php if ($data['for'] === 'homepage') { ?>nav-tab-active<?php } ?>"><?php _e('Homepage', WPACU_PLUGIN_TEXT_DOMAIN); ?></a>
15
+ <a href="<?php echo admin_url('admin.php?page=wpassetcleanup_assets_manager&wpacu_for=all_other_pages'); ?>" class="nav-tab <?php if ($data['for'] === 'all_other_pages') { ?>nav-tab-active<?php } ?>"><?php _e('All Other Pages', WPACU_PLUGIN_TEXT_DOMAIN); ?></a>
16
  </nav>
17
 
18
  <div class="wpacu-clearfix"></div>
templates/admin-page-child-pages-info.php CHANGED
@@ -7,81 +7,84 @@ if (! isset($data)) {
7
  }
8
 
9
  // [wpacu_lite]
10
- $availableForPro = '<a href="'.WPACU_PLUGIN_GO_PRO_URL.'?utm_source=plugin_pages_info_lock_page_type" class="go-pro-link-no-style"><span class="wpacu-tooltip">Available for Pro users<br />Click to upgrade!</span> <img width="20" height="20" src="'.WPACU_PLUGIN_URL.'/assets/icons/icon-lock.svg" valign="top" alt="" /></a>';
11
- $availableForProBtn = '<a class="button button-disabled go-pro-link-no-style" style="font-style: normal;" href="'.WPACU_PLUGIN_GO_PRO_URL.'?utm_source=plugin_pages_info_lock_action_btn"><span class="wpacu-tooltip wpacu-on-pages-btn">Available for Pro users<br />Click to upgrade!</span>Manage Assets</a>';
12
  // [/wpacu_lite]
13
  ?>
14
  <div id="wpacu-pages-info-area" class="wpacu-wrap">
15
  <div style="margin: 20px 0 0;" class="wpacu-notice-info">
16
- <p>This is an overview of all the WordPress pages where Asset CleanUp can be used to unload unused CSS &amp; JavaScript files. Unloading assets (CSS &amp; JavaScript) for page types that have a locker next to their name requires an <a href="<?php echo WPACU_PLUGIN_GO_PRO_URL; ?>?utm_source=plugin_pages_info&utm_medium=top_note">upgrade to the Pro version</a>.</p>
 
 
 
17
  </div>
18
 
19
  <div class="wpacu_table_wrap">
20
  <table class="table table-striped">
21
  <thead class="thead-default">
22
  <tr>
23
- <th align="left">PAGE TYPE</th>
24
- <th align="left">ACTION</th>
25
- <th align="left">DESCRIPTION</th>
26
  </tr>
27
  </thead>
28
  <tbody>
29
  <!--
30
  -->
31
  <tr>
32
- <td width="16%"><strong>Posts</strong></td>
33
- <td><a class="button" id="wpacu-manage-assets-posts-info-btn" href="#wpacu-manage-assets-posts-info">Manage Assets</a></td>
34
- <td>Post Type: 'post' (e.g. blog entries) &#10230; <a href="https://codex.wordpress.org/Posts_Screen">read more</a></td>
35
  </tr>
36
  <tr>
37
- <td><strong>Custom Post Type</strong></td>
38
- <td><a class="button" id="wpacu-manage-assets-custom-post-type-info-btn" href="#wpacu-manage-assets-custom-post-type-info">Manage Assets</a></td>
39
- <td>Popular examples: 'product' created by WooCommerce, 'download' created by Easy Digital Downloads etc. &#10230; <a href="https://codex.wordpress.org/Post_Types#Custom_Post_Types">read more</a></td>
40
  </tr>
41
  <tr>
42
- <td><strong>Pages</strong></td>
43
- <td><a class="button" id="wpacu-manage-assets-pages-info-btn" href="#wpacu-manage-assets-pages-info">Manage Assets</a></td>
44
- <td>Post Type: 'page' (e.g. About us, Contact) &#10230; <a href="https://codex.wordpress.org/Pages_Screen">read more</a></td>
45
  </tr>
46
  <tr>
47
- <td><strong>Media Attachment</strong></td>
48
- <td><a class="button" id="wpacu-manage-assets-attachments-info-btn" href="#wpacu-manage-assets-attachments-info">Manage Assets</a></td>
49
- <td>Post Type: 'attachment' (e.g. files from <a target="_blank" href="https://codex.wordpress.org/Media_Library_Screen">"Media" &#187; "Library"</a>, the page loaded usually prints the image or other media type) &#10230; <a href="https://codex.wordpress.org/Edit_Media">read more</a></td>
50
  </tr>
51
  <tr>
52
- <td><strong>Categories</strong><?php echo $availableForPro; ?></td>
53
  <td><?php echo $availableForProBtn; ?></td>
54
- <td>Default Taxonomy (they are found in "Posts" &#187; "Categories", accessing a category link reveals all the posts from that category) &#10230; <a href="https://codex.wordpress.org/Posts_Categories_Screen">read more</a></td>
55
  </tr>
56
  <tr>
57
- <td><strong>Tags</strong><?php echo $availableForPro; ?></td>
58
  <td><?php echo $availableForProBtn; ?></td>
59
- <td>Default Taxonomy (they are found in "Posts" &#187; "Tags", accessing a tag link reveals all the posts associated with the tag) &#10230; <a href="https://codex.wordpress.org/Posts_Tags_Screen">read more</a></td>
60
  </tr>
61
  <tr>
62
- <td><strong>Custom Taxonomy</strong><?php echo $availableForPro; ?></td>
63
  <td><?php echo $availableForProBtn; ?></td>
64
- <td>Popular examples: 'product_cat' created by WooCommerce, 'download_category' created by Easy Digital Downloads etc. &#10230; <a href="https://codex.wordpress.org/Taxonomies#Custom_Taxonomies">read more</a></td>
65
  </tr>
66
  <tr>
67
- <td><strong>Search</strong><?php echo $availableForPro; ?></td>
68
  <td><?php echo $availableForProBtn; ?></td>
69
  <td>Default Search Template (search.php &#187; this is the template that displays the search results; the query parameter "s" is within the URL). If you create a <a href="https://codex.wordpress.org/Creating_a_Search_Page">Search Page</a>, it will belong to the "Pages" page type. The assets can be unloaded <strong>only in the front-end view</strong> (<em>"Manage in the Front-end?" from "Settings" tab has to be enabled</em>).</td>
70
  </tr>
71
  <tr>
72
- <td><strong>Author</strong><?php echo $availableForPro; ?></td>
73
  <td><?php echo $availableForProBtn; ?></td>
74
  <td>Shows all posts belonging to a specific author (e.g. https://yourwebsite.com/author/yourname/). The assets can be unloaded <strong>only in the front-end view</strong> (<em>"Manage in the Front-end?" from "Settings" tab has to be enabled</em>).</td>
75
  </tr>
76
  <tr>
77
- <td><strong>Date</strong><?php echo $availableForPro; ?></td>
78
  <td><?php echo $availableForProBtn; ?></td>
79
  <td>Shows all posts based on the chosen date (e.g. https://yourwebsite.com/2018/08/). The assets can be unloaded <strong>only in the front-end view</strong> (<em>"Manage in the Front-end?" from "Settings" tab has to be enabled</em>).</td>
80
  </tr>
81
  <tr>
82
- <td><strong>404 Not Found</strong><?php echo $availableForPro; ?></td>
83
  <td><?php echo $availableForProBtn; ?></td>
84
- <td>This page (404.php within the theme) is reached when a request is not valid. It could be an old link that is not used anymore or the visitor typed the wrong URL to an article etc. (e.g. https://yourwebsite.com/this-is-a-non-existent-page.html). The assets can be unloaded <strong>only in the front-end view</strong> (<em>"Manage in the Front-end?" from "Settings" tab has to be enabled</em>). &#10230; <a href="https://codex.wordpress.org/Creating_an_Error_404_Page">read more</a></td>
85
  </tr>
86
  </tbody>
87
  </table>
@@ -91,7 +94,7 @@ $availableForProBtn = '<a class="button button-disabled go-pro-link-no-style" st
91
  <div id="wpacu-manage-assets-posts-info" class="wpacu-modal">
92
  <div class="wpacu-modal-content">
93
  <span class="wpacu-close">&times;</span>
94
- <h2>Posts</h2>
95
  <p style="margin-bottom: 0;">&#10230; If "Manage in the Dashboard?" is enabled:</p>
96
  <p style="margin-top: 0;">Go to "Posts" -&gt; "All Posts" -&gt; [Choose the page you want to manage the assets for] -&gt; Scroll to "Asset CleanUp" meta box where you will see the loaded CSS &amp; JavaScript files</p>
97
  <hr />
@@ -105,7 +108,7 @@ $availableForProBtn = '<a class="button button-disabled go-pro-link-no-style" st
105
  <div id="wpacu-manage-assets-custom-post-type-info" class="wpacu-modal">
106
  <div class="wpacu-modal-content">
107
  <span class="wpacu-close">&times;</span>
108
- <h2>Custom Post Type</h2>
109
  <p><strong>Example:</strong> WooCommerce product</p>
110
  <p style="margin-bottom: 0;">&#10230; If "Manage in the Dashboard?" is enabled:</p>
111
  <p style="margin-top: 0;">Go to "Products" -&gt; "All Products" -&gt; [Choose the page you want to manage the assets for] -&gt; Scroll to "Asset CleanUp" meta box where you will see the loaded CSS &amp; JavaScript files</p>
@@ -120,7 +123,7 @@ $availableForProBtn = '<a class="button button-disabled go-pro-link-no-style" st
120
  <div id="wpacu-manage-assets-pages-info" class="wpacu-modal">
121
  <div class="wpacu-modal-content">
122
  <span class="wpacu-close">&times;</span>
123
- <h2>Pages</h2>
124
  <p style="margin-bottom: 0;">&#10230; If "Manage in the Dashboard?" is enabled:</p>
125
  <p style="margin-top: 0;">Go to "Pages" -&gt; "All Pages" -&gt; [Choose the page you want to manage the assets for] -&gt; Scroll to "Asset CleanUp" meta box where you will see the loaded CSS &amp; JavaScript files</p>
126
  <hr />
@@ -134,7 +137,7 @@ $availableForProBtn = '<a class="button button-disabled go-pro-link-no-style" st
134
  <div id="wpacu-manage-assets-attachments-info" class="wpacu-modal">
135
  <div class="wpacu-modal-content">
136
  <span class="wpacu-close">&times;</span>
137
- <h2>Media Attachment Pages</h2>
138
  <p>Note: This is rarely used/needed and in some WordPress setups, the attachment's permalink redirects to the media file itself.</p>
139
  <p style="margin-bottom: 0;">&#10230; If "Manage in the Dashboard?" is enabled:</p>
140
  <p style="margin-top: 0;">Go to "Media" -&gt; "Library" -&gt; [Choose the media you want to manage the assets for] -&gt; Scroll to "Asset CleanUp" meta box where you will see the loaded CSS &amp; JavaScript files</p>
7
  }
8
 
9
  // [wpacu_lite]
10
+ $availableForPro = '<a href="'.WPACU_PLUGIN_GO_PRO_URL.'?utm_source=plugin_pages_info_lock_page_type" class="go-pro-link-no-style"><span class="wpacu-tooltip">'.__('Available for Pro users', WPACU_PLUGIN_TEXT_DOMAIN).'<br />'.__('Click to upgrade!', WPACU_PLUGIN_TEXT_DOMAIN).'</span> <img width="20" height="20" src="'.WPACU_PLUGIN_URL.'/assets/icons/icon-lock.svg" valign="top" alt="" /></a>';
11
+ $availableForProBtn = '<a class="button button-disabled go-pro-link-no-style" style="font-style: normal;" href="'.WPACU_PLUGIN_GO_PRO_URL.'?utm_source=plugin_pages_info_lock_action_btn"><span class="wpacu-tooltip wpacu-on-pages-btn">'.__('Available for Pro users', WPACU_PLUGIN_TEXT_DOMAIN).'<br />'.__('Click to upgrade!', WPACU_PLUGIN_TEXT_DOMAIN).'</span>'.__('Manage Assets', WPACU_PLUGIN_TEXT_DOMAIN).'</a>';
12
  // [/wpacu_lite]
13
  ?>
14
  <div id="wpacu-pages-info-area" class="wpacu-wrap">
15
  <div style="margin: 20px 0 0;" class="wpacu-notice-info">
16
+ <p>
17
+ <?php echo __('This is an overview of all the WordPress pages where Asset CleanUp can be used to unload unused CSS &amp; JavaScript files.', WPACU_PLUGIN_TEXT_DOMAIN) .
18
+ sprintf(__('Unloading assets (CSS &amp; JavaScript) for page types that have a locker next to their name requires an %supgrade to the Pro version%s.', WPACU_PLUGIN_TEXT_DOMAIN), '<a href="'.WPACU_PLUGIN_GO_PRO_URL.'?utm_source=plugin_pages_info&utm_medium=top_note">', '</a>'); ?>
19
+ </p>
20
  </div>
21
 
22
  <div class="wpacu_table_wrap">
23
  <table class="table table-striped">
24
  <thead class="thead-default">
25
  <tr>
26
+ <th align="left"><?php _e('PAGE TYPE', WPACU_PLUGIN_TEXT_DOMAIN); ?></th>
27
+ <th align="left"><?php _e('ACTION', WPACU_PLUGIN_TEXT_DOMAIN); ?></th>
28
+ <th align="left"><?php _e('DESCRIPTION', WPACU_PLUGIN_TEXT_DOMAIN); ?></th>
29
  </tr>
30
  </thead>
31
  <tbody>
32
  <!--
33
  -->
34
  <tr>
35
+ <td width="16%"><strong><?php _e('Posts', WPACU_PLUGIN_TEXT_DOMAIN); ?></strong></td>
36
+ <td><a class="button" id="wpacu-manage-assets-posts-info-btn" href="#wpacu-manage-assets-posts-info"><?php _e('Manage Assets', WPACU_PLUGIN_TEXT_DOMAIN); ?></a></td>
37
+ <td>Post Type: 'post' (e.g. blog entries) &#10230; <a href="https://codex.wordpress.org/Posts_Screen"><?php _e('read more', WPACU_PLUGIN_TEXT_DOMAIN); ?></a></td>
38
  </tr>
39
  <tr>
40
+ <td><strong><?php _e('Custom Post Type', WPACU_PLUGIN_TEXT_DOMAIN); ?></strong></td>
41
+ <td><a class="button" id="wpacu-manage-assets-custom-post-type-info-btn" href="#wpacu-manage-assets-custom-post-type-info"><?php _e('Manage Assets', WPACU_PLUGIN_TEXT_DOMAIN); ?></a></td>
42
+ <td>Popular examples: 'product' created by WooCommerce, 'download' created by Easy Digital Downloads etc. &#10230; <a href="https://codex.wordpress.org/Post_Types#Custom_Post_Types"><?php _e('read more', WPACU_PLUGIN_TEXT_DOMAIN); ?></a></td>
43
  </tr>
44
  <tr>
45
+ <td><strong><?php _e('Pages', WPACU_PLUGIN_TEXT_DOMAIN); ?></strong></td>
46
+ <td><a class="button" id="wpacu-manage-assets-pages-info-btn" href="#wpacu-manage-assets-pages-info"><?php _e('Manage Assets', WPACU_PLUGIN_TEXT_DOMAIN); ?></a></td>
47
+ <td>Post Type: 'page' (e.g. About us, Contact) &#10230; <a href="https://codex.wordpress.org/Pages_Screen"><?php _e('read more', WPACU_PLUGIN_TEXT_DOMAIN); ?></a></td>
48
  </tr>
49
  <tr>
50
+ <td><strong><?php _e('Media Attachment', WPACU_PLUGIN_TEXT_DOMAIN); ?></strong></td>
51
+ <td><a class="button" id="wpacu-manage-assets-attachments-info-btn" href="#wpacu-manage-assets-attachments-info"><?php _e('Manage Assets', WPACU_PLUGIN_TEXT_DOMAIN); ?></a></td>
52
+ <td>Post Type: 'attachment' (e.g. files from <a target="_blank" href="https://codex.wordpress.org/Media_Library_Screen">"Media" &#187; "Library"</a>, the page loaded usually prints the image or other media type) &#10230; <a href="https://codex.wordpress.org/Edit_Media"><?php _e('read more', WPACU_PLUGIN_TEXT_DOMAIN); ?></a></td>
53
  </tr>
54
  <tr>
55
+ <td><strong><?php _e('Categories', WPACU_PLUGIN_TEXT_DOMAIN); ?></strong><?php echo $availableForPro; ?></td>
56
  <td><?php echo $availableForProBtn; ?></td>
57
+ <td>Default Taxonomy (they are found in "Posts" &#187; "Categories", accessing a category link reveals all the posts from that category) &#10230; <a href="https://codex.wordpress.org/Posts_Categories_Screen"><?php _e('read more', WPACU_PLUGIN_TEXT_DOMAIN); ?></a></td>
58
  </tr>
59
  <tr>
60
+ <td><strong><?php _e('Tags', WPACU_PLUGIN_TEXT_DOMAIN); ?></strong><?php echo $availableForPro; ?></td>
61
  <td><?php echo $availableForProBtn; ?></td>
62
+ <td>Default Taxonomy (they are found in "Posts" &#187; "Tags", accessing a tag link reveals all the posts associated with the tag) &#10230; <a href="https://codex.wordpress.org/Posts_Tags_Screen"><?php _e('read more', WPACU_PLUGIN_TEXT_DOMAIN); ?></a></td>
63
  </tr>
64
  <tr>
65
+ <td><strong><?php _e('Custom Taxonomy', WPACU_PLUGIN_TEXT_DOMAIN); ?></strong><?php echo $availableForPro; ?></td>
66
  <td><?php echo $availableForProBtn; ?></td>
67
+ <td>Popular examples: 'product_cat' created by WooCommerce, 'download_category' created by Easy Digital Downloads etc. &#10230; <a href="https://codex.wordpress.org/Taxonomies#Custom_Taxonomies"><?php _e('read more', WPACU_PLUGIN_TEXT_DOMAIN); ?></a></td>
68
  </tr>
69
  <tr>
70
+ <td><strong><?php _e('Search', WPACU_PLUGIN_TEXT_DOMAIN); ?></strong><?php echo $availableForPro; ?></td>
71
  <td><?php echo $availableForProBtn; ?></td>
72
  <td>Default Search Template (search.php &#187; this is the template that displays the search results; the query parameter "s" is within the URL). If you create a <a href="https://codex.wordpress.org/Creating_a_Search_Page">Search Page</a>, it will belong to the "Pages" page type. The assets can be unloaded <strong>only in the front-end view</strong> (<em>"Manage in the Front-end?" from "Settings" tab has to be enabled</em>).</td>
73
  </tr>
74
  <tr>
75
+ <td><strong><?php _e('Author', WPACU_PLUGIN_TEXT_DOMAIN); ?></strong><?php echo $availableForPro; ?></td>
76
  <td><?php echo $availableForProBtn; ?></td>
77
  <td>Shows all posts belonging to a specific author (e.g. https://yourwebsite.com/author/yourname/). The assets can be unloaded <strong>only in the front-end view</strong> (<em>"Manage in the Front-end?" from "Settings" tab has to be enabled</em>).</td>
78
  </tr>
79
  <tr>
80
+ <td><strong><?php _e('Date', WPACU_PLUGIN_TEXT_DOMAIN); ?></strong><?php echo $availableForPro; ?></td>
81
  <td><?php echo $availableForProBtn; ?></td>
82
  <td>Shows all posts based on the chosen date (e.g. https://yourwebsite.com/2018/08/). The assets can be unloaded <strong>only in the front-end view</strong> (<em>"Manage in the Front-end?" from "Settings" tab has to be enabled</em>).</td>
83
  </tr>
84
  <tr>
85
+ <td><strong><?php _e('404 Not Found', WPACU_PLUGIN_TEXT_DOMAIN); ?></strong><?php echo $availableForPro; ?></td>
86
  <td><?php echo $availableForProBtn; ?></td>
87
+ <td>This page (404.php within the theme) is reached when a request is not valid. It could be an old link that is not used anymore or the visitor typed the wrong URL to an article etc. (e.g. https://yourwebsite.com/this-is-a-non-existent-page.html). The assets can be unloaded <strong>only in the front-end view</strong> (<em>"Manage in the Front-end?" from "Settings" tab has to be enabled</em>). &#10230; <a href="https://codex.wordpress.org/Creating_an_Error_404_Page"><?php _e('read more', WPACU_PLUGIN_TEXT_DOMAIN); ?></a></td>
88
  </tr>
89
  </tbody>
90
  </table>
94
  <div id="wpacu-manage-assets-posts-info" class="wpacu-modal">
95
  <div class="wpacu-modal-content">
96
  <span class="wpacu-close">&times;</span>
97
+ <h2><?php _e('Posts', WPACU_PLUGIN_TEXT_DOMAIN); ?></h2>
98
  <p style="margin-bottom: 0;">&#10230; If "Manage in the Dashboard?" is enabled:</p>
99
  <p style="margin-top: 0;">Go to "Posts" -&gt; "All Posts" -&gt; [Choose the page you want to manage the assets for] -&gt; Scroll to "Asset CleanUp" meta box where you will see the loaded CSS &amp; JavaScript files</p>
100
  <hr />
108
  <div id="wpacu-manage-assets-custom-post-type-info" class="wpacu-modal">
109
  <div class="wpacu-modal-content">
110
  <span class="wpacu-close">&times;</span>
111
+ <h2><?php _e('Custom Post Type', WPACU_PLUGIN_TEXT_DOMAIN); ?></h2>
112
  <p><strong>Example:</strong> WooCommerce product</p>
113
  <p style="margin-bottom: 0;">&#10230; If "Manage in the Dashboard?" is enabled:</p>
114
  <p style="margin-top: 0;">Go to "Products" -&gt; "All Products" -&gt; [Choose the page you want to manage the assets for] -&gt; Scroll to "Asset CleanUp" meta box where you will see the loaded CSS &amp; JavaScript files</p>
123
  <div id="wpacu-manage-assets-pages-info" class="wpacu-modal">
124
  <div class="wpacu-modal-content">
125
  <span class="wpacu-close">&times;</span>
126
+ <h2><?php _e('Pages', WPACU_PLUGIN_TEXT_DOMAIN); ?></h2>
127
  <p style="margin-bottom: 0;">&#10230; If "Manage in the Dashboard?" is enabled:</p>
128
  <p style="margin-top: 0;">Go to "Pages" -&gt; "All Pages" -&gt; [Choose the page you want to manage the assets for] -&gt; Scroll to "Asset CleanUp" meta box where you will see the loaded CSS &amp; JavaScript files</p>
129
  <hr />
137
  <div id="wpacu-manage-assets-attachments-info" class="wpacu-modal">
138
  <div class="wpacu-modal-content">
139
  <span class="wpacu-close">&times;</span>
140
+ <h2><?php _e('Media Attachment Pages', WPACU_PLUGIN_TEXT_DOMAIN); ?></h2>
141
  <p>Note: This is rarely used/needed and in some WordPress setups, the attachment's permalink redirects to the media file itself.</p>
142
  <p style="margin-bottom: 0;">&#10230; If "Manage in the Dashboard?" is enabled:</p>
143
  <p style="margin-top: 0;">Go to "Media" -&gt; "Library" -&gt; [Choose the media you want to manage the assets for] -&gt; Scroll to "Asset CleanUp" meta box where you will see the loaded CSS &amp; JavaScript files</p>
templates/admin-page-child-settings-homepage.php CHANGED
@@ -58,7 +58,7 @@ if ($data['show_on_front'] === 'page') {
58
  name="wpacu_ajax_fetch_assets_list_dashboard_view"
59
  value="1" />
60
 
61
- <p><?php _e('Here you can unload files loaded on the home page. "Front page displays" (from "Settings" &#187; "Reading") is set to either "Your latest posts" (in "Settings" &#187; "Reading") OR a special layout (from a theme or plugin) was enabled.', WPACU_PLUGIN_TEXT_DOMAIN); ?> Changes will also apply to pages such as <code>/page/2</code> <code>page/3</code> etc. in case the latest blog posts are paginated.</p>
62
 
63
  <div id="wpacu_meta_box_content">
64
  <img src="<?php echo admin_url(); ?>/images/spinner.gif" align="top" width="20" height="20" alt="" />&nbsp;
58
  name="wpacu_ajax_fetch_assets_list_dashboard_view"
59
  value="1" />
60
 
61
+ <p><?php _e('Here you can unload files loaded on the home page. "Front page displays" (from "Settings" &#187; "Reading") is set to either "Your latest posts" (in "Settings" &#187; "Reading") OR a special layout (from a theme or plugin) was enabled.', WPACU_PLUGIN_TEXT_DOMAIN); ?> <?php echo sprintf(__('Changes will also apply to pages such as %s etc. in case the latest blog posts are paginated.', WPACU_PLUGIN_TEXT_DOMAIN), '<code>/page/2</code> <code>page/3</code>'); ?></p>
62
 
63
  <div id="wpacu_meta_box_content">
64
  <img src="<?php echo admin_url(); ?>/images/spinner.gif" align="top" width="20" height="20" alt="" />&nbsp;
templates/admin-page-get-help.php CHANGED
@@ -14,7 +14,7 @@ include_once '_top-area.php';
14
  <div class="help-content upgrade-help">
15
  <h2 class="content-title"><?php _e('I have purchased the Pro version. How to do the upgrade?', WPACU_PLUGIN_TEXT_DOMAIN); ?></h2>
16
  <ul>
17
- <li><strong>1)</strong> Go to "Plugins" -&gt; "Installed Plugins", <strong>deactivate</strong> and then <strong>delete</strong> "Asset CleanUp: Page Speed Booster" (<em>no worries, any settings applied would be preserved</em>)
18
  <div class="cols-wrap">
19
  <div class="wpacu-image-area wpacu-deactivate col-left">
20
  <img src="<?php echo WPACU_PLUGIN_URL; ?>/assets/images/wpacu-upgrade-steps/wpacu-upgrade-step-1-deactivate.jpg" alt="" />
@@ -27,20 +27,20 @@ include_once '_top-area.php';
27
  <hr />
28
  </div>
29
  </li>
30
- <li><strong>2)</strong> Go to "Plugins" -&gt; "Add New" -&gt; "Upload Plugin"; You will notice an upload form and an "Install Now" submit button. Download the ZIP file you received in your purchase email receipt (<em>example: wp-asset-clean-up-pro-v1.0.8.5.zip</em>), attach it to the form and install the new upgraded plugin.
31
  <div class="wpacu-image-area">
32
  <img src="<?php echo WPACU_PLUGIN_URL; ?>/assets/images/wpacu-upgrade-steps/wpacu-upgrade-step-2-choose-file.jpg" alt="" />
33
  </div>
34
  <hr />
35
  </li>
36
- <li><strong>3)</strong> Finally, <strong>activate</strong> Asset CleanUp Pro! That's it <span class="dashicons dashicons-smiley"></span>
37
  <div class="wpacu-image-area activate-plugin">
38
  <img src="<?php echo WPACU_PLUGIN_URL; ?>/assets/images/wpacu-upgrade-steps/wpacu-upgrade-step-3-activate-plugin.jpg" alt="" />
39
  </div>
40
  </li>
41
  </ul>
42
 
43
- <p><strong>Reminder:</strong> Once the Pro version is active, make sure to get the license key from the purchase email receipt and activate it in "License" in order to be eligible for plugin updates from the Dashboard.</p>
44
  </div>
45
 
46
  <div class="help-content tech-help second">
@@ -68,9 +68,9 @@ include_once '_top-area.php';
68
  <hr /><br />
69
 
70
  <div class="wpacu-btns">
71
- <a class="btn btn-success" href="https://app.codeable.io/tasks/new?ref=d3TOr&preferredContractor=28168">Hire an Expert</a>
72
  &nbsp;&nbsp;
73
- <a class="btn btn-secondary" href="https://codeable.io/?ref=d3TOr">Find out more</a>
74
  </div>
75
  </div>
76
  </div>
14
  <div class="help-content upgrade-help">
15
  <h2 class="content-title"><?php _e('I have purchased the Pro version. How to do the upgrade?', WPACU_PLUGIN_TEXT_DOMAIN); ?></h2>
16
  <ul>
17
+ <li><strong>1)</strong> <?php _e('Go to "Plugins" -&gt; "Installed Plugins", <strong>deactivate</strong> and then <strong>delete</strong> "Asset CleanUp: Page Speed Booster" (<em>no worries, any settings applied would be preserved</em>)', WPACU_PLUGIN_TEXT_DOMAIN); ?>
18
  <div class="cols-wrap">
19
  <div class="wpacu-image-area wpacu-deactivate col-left">
20
  <img src="<?php echo WPACU_PLUGIN_URL; ?>/assets/images/wpacu-upgrade-steps/wpacu-upgrade-step-1-deactivate.jpg" alt="" />
27
  <hr />
28
  </div>
29
  </li>
30
+ <li><strong>2)</strong> <?php _e('Go to "Plugins" -&gt; "Add New" -&gt; "Upload Plugin"; You will notice an upload form and an "Install Now" submit button. Download the ZIP file you received in your purchase email receipt (<em>example: wp-asset-clean-up-pro-v1.0.8.5.zip</em>), attach it to the form and install the new upgraded plugin.', WPACU_PLUGIN_TEXT_DOMAIN); ?>
31
  <div class="wpacu-image-area">
32
  <img src="<?php echo WPACU_PLUGIN_URL; ?>/assets/images/wpacu-upgrade-steps/wpacu-upgrade-step-2-choose-file.jpg" alt="" />
33
  </div>
34
  <hr />
35
  </li>
36
+ <li><strong>3)</strong> <?php _e('Finally, <strong>activate</strong> Asset CleanUp Pro! That\'s it', WPACU_PLUGIN_TEXT_DOMAIN); ?> <span class="dashicons dashicons-smiley"></span>
37
  <div class="wpacu-image-area activate-plugin">
38
  <img src="<?php echo WPACU_PLUGIN_URL; ?>/assets/images/wpacu-upgrade-steps/wpacu-upgrade-step-3-activate-plugin.jpg" alt="" />
39
  </div>
40
  </li>
41
  </ul>
42
 
43
+ <p><strong><?php _e('Reminder', WPACU_PLUGIN_TEXT_DOMAIN); ?>:</strong> <?php _e('Once the Pro version is active, make sure to get the license key from the purchase email receipt and activate it in "License" in order to be eligible for plugin updates from the Dashboard.', WPACU_PLUGIN_TEXT_DOMAIN); ?></p>
44
  </div>
45
 
46
  <div class="help-content tech-help second">
68
  <hr /><br />
69
 
70
  <div class="wpacu-btns">
71
+ <a class="btn btn-success" href="https://app.codeable.io/tasks/new?ref=d3TOr&preferredContractor=28168"><?php _e('Hire an Expert', WPACU_PLUGIN_TEXT_DOMAIN); ?></a>
72
  &nbsp;&nbsp;
73
+ <a class="btn btn-secondary" href="https://codeable.io/?ref=d3TOr"><?php _e('Find out more', WPACU_PLUGIN_TEXT_DOMAIN); ?></a>
74
  </div>
75
  </div>
76
  </div>
templates/admin-page-getting-started.php CHANGED
@@ -8,17 +8,26 @@ if (! isset($data)) {
8
  ?>
9
  <div class="wpacu-wrap">
10
  <div class="about-wrap wpacu-about-wrap">
11
- <h1>Welcome to Asset CleanUp <?php echo WPACU_PLUGIN_VERSION; ?></h1>
12
  <p class="about-text wpacu-about-text">
13
- Thank you for installing this page speed booster plugin! Prepare to make your WordPress website faster &amp; lighter by removing the useless CSS &amp; JavaScript files from your pages. For maximum performance, Asset CleanUp works best when used with either a <a style="text-decoration: none; color: #555d66;" href="https://gabelivan.com/visit/wp-rocket">caching plugin</a>, the in-built hosting caching (e.g. <a style="text-decoration: none; color: #555d66;" href="https://gabelivan.com/visit/wp-engine">WPEngine</a>, Kinsta have it) or something like Varnish.
 
 
 
 
 
 
 
 
 
14
  <img src="<?php echo WPACU_PLUGIN_URL; ?>/assets/images/wpacu-logo-transparent-bg-v1.png" alt="" />
15
  </p>
16
 
17
  <h2 class="nav-tab-wrapper wp-clearfix">
18
- <a href="<?php echo admin_url('admin.php?page=wpassetcleanup_getting_started&wpacu_for=how-it-works'); ?>" class="nav-tab <?php if ($data['for'] === 'how-it-works') { ?>nav-tab-active<?php } ?>">How it works</a>
19
- <a href="<?php echo admin_url('admin.php?page=wpassetcleanup_getting_started&wpacu_for=benefits-fast-pages'); ?>" class="nav-tab <?php if ($data['for'] === 'benefits-fast-pages') { ?>nav-tab-active<?php } ?>">Benefits of a Fast Website</a>
20
- <a href="<?php echo admin_url('admin.php?page=wpassetcleanup_getting_started&wpacu_for=start-optimization'); ?>" class="nav-tab <?php if ($data['for'] === 'start-optimization') { ?>nav-tab-active<?php } ?>">Start Optimization</a>
21
- <a href="<?php echo admin_url('admin.php?page=wpassetcleanup_getting_started&wpacu_for=video-tutorials'); ?>" class="nav-tab <?php if ($data['for'] === 'video-tutorials') { ?>nav-tab-active<?php } ?>"><span class="dashicons dashicons-video-alt3" style="color: #ff0000;"></span> Video Tutorials</a>
22
  <a href="<?php echo admin_url('admin.php?page=wpassetcleanup_getting_started&wpacu_for=lite-vs-pro'); ?>" class="nav-tab <?php if ($data['for'] === 'lite-vs-pro') { ?>nav-tab-active<?php } ?>"><span class="dashicons dashicons-awards"></span> Lite vs Pro</a>
23
  </h2>
24
 
8
  ?>
9
  <div class="wpacu-wrap">
10
  <div class="about-wrap wpacu-about-wrap">
11
+ <h1><?php echo sprintf(__('Welcome to %s %s', WPACU_PLUGIN_TEXT_DOMAIN), 'Asset CleanUp', WPACU_PLUGIN_VERSION); ?></h1>
12
  <p class="about-text wpacu-about-text">
13
+ <?php _e('Thank you for installing this page speed booster plugin', WPACU_PLUGIN_TEXT_DOMAIN); ?>! <?php _e('Prepare to make your WordPress website faster &amp; lighter by removing the useless CSS &amp; JavaScript files from your pages.', WPACU_PLUGIN_TEXT_DOMAIN); ?>
14
+ <?php echo sprintf(
15
+ __('For maximum performance, %s works best when used with either a %scaching plugin%s, the in-built hosting caching (e.g. via %sWPEngine%s, Kinsta, etc.) or something like Varnish.', WPACU_PLUGIN_TEXT_DOMAIN),
16
+ 'Asset CleanUp',
17
+ '<a style="text-decoration: none; color: #555d66;" href="https://gabelivan.com/visit/wp-rocket">',
18
+ '</a>',
19
+ '<a style="text-decoration: none; color: #555d66;" href="https://gabelivan.com/visit/wp-engine">',
20
+ '</a>'
21
+ );
22
+ ?>
23
  <img src="<?php echo WPACU_PLUGIN_URL; ?>/assets/images/wpacu-logo-transparent-bg-v1.png" alt="" />
24
  </p>
25
 
26
  <h2 class="nav-tab-wrapper wp-clearfix">
27
+ <a href="<?php echo admin_url('admin.php?page=wpassetcleanup_getting_started&wpacu_for=how-it-works'); ?>" class="nav-tab <?php if ($data['for'] === 'how-it-works') { ?>nav-tab-active<?php } ?>"><?php _e('How it works', WPACU_PLUGIN_TEXT_DOMAIN); ?></a>
28
+ <a href="<?php echo admin_url('admin.php?page=wpassetcleanup_getting_started&wpacu_for=benefits-fast-pages'); ?>" class="nav-tab <?php if ($data['for'] === 'benefits-fast-pages') { ?>nav-tab-active<?php } ?>"><?php _e('Benefits of a Fast Website', WPACU_PLUGIN_TEXT_DOMAIN); ?></a>
29
+ <a href="<?php echo admin_url('admin.php?page=wpassetcleanup_getting_started&wpacu_for=start-optimization'); ?>" class="nav-tab <?php if ($data['for'] === 'start-optimization') { ?>nav-tab-active<?php } ?>"><?php _e('Start Optimization', WPACU_PLUGIN_TEXT_DOMAIN); ?></a>
30
+ <a href="<?php echo admin_url('admin.php?page=wpassetcleanup_getting_started&wpacu_for=video-tutorials'); ?>" class="nav-tab <?php if ($data['for'] === 'video-tutorials') { ?>nav-tab-active<?php } ?>"><span class="dashicons dashicons-video-alt3" style="color: #ff0000;"></span> <?php _e('Video Tutorials', WPACU_PLUGIN_TEXT_DOMAIN); ?></a>
31
  <a href="<?php echo admin_url('admin.php?page=wpassetcleanup_getting_started&wpacu_for=lite-vs-pro'); ?>" class="nav-tab <?php if ($data['for'] === 'lite-vs-pro') { ?>nav-tab-active<?php } ?>"><span class="dashicons dashicons-awards"></span> Lite vs Pro</a>
32
  </h2>
33
 
templates/admin-page-license.php CHANGED
@@ -10,11 +10,22 @@ include_once '_top-area.php';
10
  ?>
11
  <div class="wpacu-wrap">
12
 
13
- <p>You're using the lite version of <?php echo WPACU_PLUGIN_TITLE; ?> (v<?php echo WPACU_PLUGIN_VERSION; ?>), so no license key is needed. You'll receive automatic notifications whenever a new version is available for download.</p>
14
- <p><em>To unlock all features and get premium support, you can <a href="<?php echo WPACU_PLUGIN_GO_PRO_URL; ?>?utm_source=plugin_license">upgrade to the Pro version</a>.</em></p>
 
 
 
 
 
 
 
15
 
16
  <div class="wrap-upgrade-info">
17
- <p><span class="dashicons dashicons-info"></span> If you already purchased the Pro version and you don't know how to activate it, <a href="admin.php?page=wpassetcleanup_get_help">follow the steps from the "Help" section</a>.</p>
 
 
 
 
18
  <div class="wpacu-clearfix"></div>
19
  </div>
20
  </div>
10
  ?>
11
  <div class="wpacu-wrap">
12
 
13
+ <p><?php echo sprintf(
14
+ __('You\'re using the lite version of %s (v%s), so no license key is needed. You\'ll receive automatic notifications whenever a new version is available for download.', WPACU_PLUGIN_TEXT_DOMAIN),
15
+ WPACU_PLUGIN_TITLE, WPACU_PLUGIN_VERSION);
16
+ ?></p>
17
+ <p><em><?php echo sprintf(
18
+ __('To unlock all features and get premium support, you can %supgrade to the Pro version%s.', WPACU_PLUGIN_TEXT_DOMAIN),
19
+ '<a href="'.WPACU_PLUGIN_GO_PRO_URL.'?utm_source=plugin_license">', '</a>'
20
+ );
21
+ ?></em></p>
22
 
23
  <div class="wrap-upgrade-info">
24
+ <p><span class="dashicons dashicons-info"></span> <?php echo sprintf(
25
+ __('If you already purchased the Pro version and you don\'t know how to activate it, %sfollow the steps from the "Help" section%s.', WPACU_PLUGIN_TEXT_DOMAIN),
26
+ '<a href="'.admin_url('admin.php?page=wpassetcleanup_get_help').'">', '</a>'
27
+ );
28
+ ?></p>
29
  <div class="wpacu-clearfix"></div>
30
  </div>
31
  </div>
templates/admin-page-settings-plugin.php CHANGED
@@ -83,7 +83,7 @@ if ($showSettingsType === 'tabs') {
83
  <div id="wpacu-update-button-area">
84
  <?php
85
  wp_nonce_field('wpacu_settings_update', 'wpacu_settings_nonce');
86
- submit_button('Update All Settings');
87
  ?>
88
  <div id="wpacu-updating-settings">
89
  <img src="<?php echo admin_url(); ?>/images/spinner.gif" align="top" width="20" height="20" alt="" />
83
  <div id="wpacu-update-button-area">
84
  <?php
85
  wp_nonce_field('wpacu_settings_update', 'wpacu_settings_nonce');
86
+ submit_button(__('Update All Settings', WPACU_PLUGIN_TEXT_DOMAIN));
87
  ?>
88
  <div id="wpacu-updating-settings">
89
  <img src="<?php echo admin_url(); ?>/images/spinner.gif" align="top" width="20" height="20" alt="" />
templates/admin-page-tools.php CHANGED
@@ -12,40 +12,40 @@ do_action('wpacu_admin_notices');
12
  ?>
13
  <div class="wpacu-wrap wpacu-tools-area">
14
  <nav class="wpacu-tab-nav-wrapper nav-tab-wrapper">
15
- <a href="<?php echo admin_url('admin.php?page=wpassetcleanup_tools&wpacu_for=reset'); ?>" class="nav-tab <?php if ($data['for'] === 'reset') { ?>nav-tab-active<?php } ?>">Reset</a>
16
- <a href="<?php echo admin_url('admin.php?page=wpassetcleanup_tools&wpacu_for=system_info'); ?>" class="nav-tab <?php if ($data['for'] === 'system_info') { ?>nav-tab-active<?php } ?>">System Info</a>
17
  </nav>
18
 
19
  <div class="wpacu-tools-container">
20
  <form id="wpacu-tools-form" action="<?php echo admin_url('admin.php?page='.WPACU_PLUGIN_ID.'_tools'); ?>" method="post">
21
  <?php if ($data['for'] === 'reset') { ?>
22
- <div><label for="wpacu-reset-drop-down">Do you need to reset the plugin to its initial settings or reset all changes?</label></div>
23
 
24
  <select name="wpacu-reset" id="wpacu-reset-drop-down">
25
- <option value="">Select an option first...</option>
26
- <option data-id="wpacu-warning-reset-settings" value="reset_settings">Reset settings</option>
27
- <option data-id="wpacu-warning-reset-everything" value="reset_everything">Reset everything: settings, all unloads (bulk &amp; individual) &amp; load exceptions</option>
28
  </select>
29
 
30
  <div id="wpacu-license-data-remove-area">
31
  <label for="wpacu-remove-license-data">
32
- <input id="wpacu-remove-license-data" type="checkbox" name="wpacu-remove-license-data" value="1" /> Also remove license data in case the premium version was active at any point
33
  </label>
34
  </div>
35
 
36
- <div id="wpacu-warning-read"><span class="dashicons dashicons-warning"></span> <strong>Please read carefully below what the chosen action does as this process is NOT reversible.</strong></div>
37
 
38
  <div id="wpacu-warning-reset-settings" class="wpacu-warning">
39
- <p>This will reset every option from the "Settings" page/tab to the same state it was when you first activated the plugin.</p>
40
  </div>
41
 
42
  <div id="wpacu-warning-reset-everything" class="wpacu-warning">
43
- <p>This will reset everything (settings, page loads &amp; any load exceptions) to the same point it was when you first activated the plugin. All the plugin's database records will be removed. It will technically have the same effect for your website as if the plugin would be deactivated.</p>
44
 
45
- <p>This action is usually taken if:</p>
46
  <ul>
47
- <li>You believe you have applied some changes (such as unloading the wrong CSS / JavaScript file(s)) that broke the website and you need a quick fix to make it work the way it used to. Note that for this option, you can also enable "Test Mode" from the plugin's settings which will only apply the changes to you (logged-in administrator), while the regular visitors will view the website as if Asset CleanUp is deactivated.</li>
48
- <li>You want to uninstall Asset CleanUp and remove the traces left in the database (this is not the same thing as deactivating and activating the plugin again, as any changes applied would be preserved in this scenario)</li>
49
  </ul>
50
  </div>
51
 
12
  ?>
13
  <div class="wpacu-wrap wpacu-tools-area">
14
  <nav class="wpacu-tab-nav-wrapper nav-tab-wrapper">
15
+ <a href="<?php echo admin_url('admin.php?page=wpassetcleanup_tools&wpacu_for=reset'); ?>" class="nav-tab <?php if ($data['for'] === 'reset') { ?>nav-tab-active<?php } ?>"><?php _e('Reset', WPACU_PLUGIN_TEXT_DOMAIN); ?></a>
16
+ <a href="<?php echo admin_url('admin.php?page=wpassetcleanup_tools&wpacu_for=system_info'); ?>" class="nav-tab <?php if ($data['for'] === 'system_info') { ?>nav-tab-active<?php } ?>"><?php _e('System Info', WPACU_PLUGIN_TEXT_DOMAIN); ?></a>
17
  </nav>
18
 
19
  <div class="wpacu-tools-container">
20
  <form id="wpacu-tools-form" action="<?php echo admin_url('admin.php?page='.WPACU_PLUGIN_ID.'_tools'); ?>" method="post">
21
  <?php if ($data['for'] === 'reset') { ?>
22
+ <div><label for="wpacu-reset-drop-down"><?php _e('Do you need to reset the plugin to its initial settings or reset all changes?', WPACU_PLUGIN_TEXT_DOMAIN); ?></label></div>
23
 
24
  <select name="wpacu-reset" id="wpacu-reset-drop-down">
25
+ <option value=""><?php _e('Select an option first', WPACU_PLUGIN_TEXT_DOMAIN); ?>...</option>
26
+ <option data-id="wpacu-warning-reset-settings" value="reset_settings"><?php _e('Reset settings', WPACU_PLUGIN_TEXT_DOMAIN); ?></option>
27
+ <option data-id="wpacu-warning-reset-everything" value="reset_everything"><?php _e('Reset everything: settings, all unloads (bulk &amp; individual) &amp; load exceptions', WPACU_PLUGIN_TEXT_DOMAIN); ?></option>
28
  </select>
29
 
30
  <div id="wpacu-license-data-remove-area">
31
  <label for="wpacu-remove-license-data">
32
+ <input id="wpacu-remove-license-data" type="checkbox" name="wpacu-remove-license-data" value="1" /> <?php _e('Also remove license data in case the premium version was active at any point', WPACU_PLUGIN_TEXT_DOMAIN); ?>
33
  </label>
34
  </div>
35
 
36
+ <div id="wpacu-warning-read"><span class="dashicons dashicons-warning"></span> <strong><?php _e('Please read carefully below what the chosen action does as this process is NOT reversible.', WPACU_PLUGIN_TEXT_DOMAIN); ?></strong></div>
37
 
38
  <div id="wpacu-warning-reset-settings" class="wpacu-warning">
39
+ <p><?php _e('This will reset every option from the "Settings" page/tab to the same state it was when you first activated the plugin.', WPACU_PLUGIN_TEXT_DOMAIN); ?></p>
40
  </div>
41
 
42
  <div id="wpacu-warning-reset-everything" class="wpacu-warning">
43
+ <p><?php _e('This will reset everything (settings, page loads &amp; any load exceptions) to the same point it was when you first activated the plugin. All the plugin\'s database records will be removed. It will technically have the same effect for your website as if the plugin would be deactivated.', WPACU_PLUGIN_TEXT_DOMAIN); ?></p>
44
 
45
+ <p><?php _e('This action is usually taken if:', WPACU_PLUGIN_TEXT_DOMAIN); ?></p>
46
  <ul>
47
+ <li><?php _e('You believe you have applied some changes (such as unloading the wrong CSS / JavaScript file(s)) that broke the website and you need a quick fix to make it work the way it used to. Note that for this option, you can also enable "Test Mode" from the plugin\'s settings which will only apply the changes to you (logged-in administrator), while the regular visitors will view the website as if Asset CleanUp is deactivated.', WPACU_PLUGIN_TEXT_DOMAIN); ?></li>
48
+ <li><?php _e('You want to uninstall Asset CleanUp and remove the traces left in the database (this is not the same thing as deactivating and activating the plugin again, as any changes applied would be preserved in this scenario)', WPACU_PLUGIN_TEXT_DOMAIN); ?></li>
49
  </ul>
50
  </div>
51
 
templates/meta-box-loaded-assets/_asset-script-single-row.php CHANGED
@@ -37,14 +37,18 @@ $jqueryIconHtmlDepends = '<img src="'.WPACU_PLUGIN_URL.'/assets/icons/handles/ic
37
  ?>
38
 
39
  <?php
 
 
40
  if (isset($data['row']['obj']->src, $data['row']['obj']->srcHref) && $data['row']['obj']->src !== '' && $data['row']['obj']->srcHref) {
41
  $relSrc = str_replace(site_url(), '', $data['row']['obj']->src);
42
 
43
  if (isset($data['row']['obj']->baseUrl)) {
44
  $relSrc = str_replace($data['row']['obj']->baseUrl, '/', $relSrc);
45
  }
 
 
46
  ?>
47
- <p><?php _e('Source:', WPACU_PLUGIN_TEXT_DOMAIN); ?> <a target="_blank" style="color: green;" href="<?php echo $data['row']['obj']->srcHref; ?>"><?php echo $relSrc; ?></a></p>
48
  <?php
49
  }
50
  ?>
@@ -56,8 +60,8 @@ $jqueryIconHtmlDepends = '<img src="'.WPACU_PLUGIN_URL.'/assets/icons/handles/ic
56
  $depsOutput = '';
57
 
58
  $dependsOnText = (count($data['row']['obj']->deps) === 1)
59
- ? __('Linked to one "parent" file:')
60
- : sprintf(__('Linked to %s JS "parent" files:', WPACU_PLUGIN_TEXT_DOMAIN), count($data['row']['obj']->deps));
61
 
62
  $depsOutput .= $dependsOnText.' ';
63
 
@@ -74,7 +78,6 @@ $jqueryIconHtmlDepends = '<img src="'.WPACU_PLUGIN_URL.'/assets/icons/handles/ic
74
  $extraInfo[] = $depsOutput;
75
  }
76
 
77
- $ver = (isset($data['row']['obj']->ver) && trim($data['row']['obj']->ver)) ? $data['row']['obj']->ver : $data['wp_version'];
78
  $extraInfo[] = __('Version:', WPACU_PLUGIN_TEXT_DOMAIN).' '.$ver;
79
 
80
  if (isset($data['row']['obj']->position) && $data['row']['obj']->position !== '') {
@@ -83,7 +86,7 @@ $jqueryIconHtmlDepends = '<img src="'.WPACU_PLUGIN_URL.'/assets/icons/handles/ic
83
 
84
  // [wpacu_lite]
85
  if (isset($data['row']['obj']->src) && $data['row']['obj']->src) {
86
- $extraInfo[] = __( 'File Size:', WPACU_PLUGIN_TEXT_DOMAIN ) . ' <a class="go-pro-link-no-style" href="' . WPACU_PLUGIN_GO_PRO_URL . '?utm_source=manage_asset&utm_medium=file_size"><span class="wpacu-tooltip">Upgrade to Pro and unlock all features</span><img width="20" height="20" src="' . WPACU_PLUGIN_URL . '/assets/icons/icon-lock.svg" valign="top" alt="" /> Pro Version</a>';
87
  }
88
  // [/wpacu_lite]
89
 
@@ -100,7 +103,7 @@ $jqueryIconHtmlDepends = '<img src="'.WPACU_PLUGIN_URL.'/assets/icons/handles/ic
100
  <input class="input-unload-on-this-page <?php if (! $isBulkUnloaded) { echo 'wpacu-not-locked'; } ?>" id="script_<?php echo $data['row']['obj']->handle; ?>" <?php /* [wpacu_lite] */ if ($data['row']['global_unloaded'] || $data['row']['is_post_type_unloaded']) { /* [/wpacu_lite] */ echo 'disabled="disabled"'; } echo $data['row']['checked']; ?>name="<?php echo WPACU_PLUGIN_ID; ?>[scripts][]" type="checkbox" value="<?php echo $data['row']['obj']->handle; ?>" /><span class="wpacu_slider wpacu_round"></span>
101
  </label>
102
  <label class="wpacu_slider_text" for="script_<?php echo $data['row']['obj']->handle; ?>">
103
- Unload on this page
104
  </label>
105
  </li>
106
  </ul>
@@ -108,7 +111,7 @@ $jqueryIconHtmlDepends = '<img src="'.WPACU_PLUGIN_URL.'/assets/icons/handles/ic
108
  <?php
109
  if ($isBulkUnloaded) {
110
  ?>
111
- <em>"Unload on this page" rule is locked and irrelevant as there are global rules set below that overwrite it. Once all the rules below are removed, this option will become available again.</em>
112
  <?php
113
  }
114
  ?>
@@ -119,7 +122,7 @@ $jqueryIconHtmlDepends = '<img src="'.WPACU_PLUGIN_URL.'/assets/icons/handles/ic
119
  // Unloaded Everywhere
120
  if ($data['row']['global_unloaded']) {
121
  ?>
122
- <p><strong style="color: #d54e21;">This JavaScript file is unloaded everywhere</strong></p>
123
  <div class="wpacu-clearfix"></div>
124
  <?php
125
  }
@@ -158,7 +161,7 @@ $jqueryIconHtmlDepends = '<img src="'.WPACU_PLUGIN_URL.'/assets/icons/handles/ic
158
  type="checkbox"
159
  name="wpacu_global_unload_scripts[]"
160
  value="<?php echo $data['row']['obj']->handle; ?>"/>
161
- Unload Everywhere <small>* bulk unload</small></label>
162
  </li>
163
  <?php
164
  }
@@ -195,7 +198,7 @@ $jqueryIconHtmlDepends = '<img src="'.WPACU_PLUGIN_URL.'/assets/icons/handles/ic
195
  name="wpacu_options_post_type_scripts[<?php echo $data['row']['obj']->handle; ?>]"
196
  checked="checked"
197
  value="default"/>
198
- Keep rule</label>
199
  </li>
200
 
201
  <li>
@@ -204,7 +207,7 @@ $jqueryIconHtmlDepends = '<img src="'.WPACU_PLUGIN_URL.'/assets/icons/handles/ic
204
  type="radio"
205
  name="wpacu_options_post_type_scripts[<?php echo $data['row']['obj']->handle; ?>]"
206
  value="remove"/>
207
- Remove bulk rule</label>
208
  </li>
209
  <?php
210
  } else {
@@ -266,10 +269,10 @@ $jqueryIconHtmlDepends = '<img src="'.WPACU_PLUGIN_URL.'/assets/icons/handles/ic
266
  <!-- [wpacu_lite] -->
267
  <?php if (isset($data['row']['obj']->src) && $data['row']['obj']->src !== '') { ?>
268
  <div class="wpacu-script-attributes-area wpacu-lite">
269
- <p>If loaded (not unloaded by any of the rules above), apply the following attributes: <em><a class="go-pro-link-no-style" href="<?php echo WPACU_PLUGIN_GO_PRO_URL; ?>">* this option is available in Pro version</a></em></p>
270
 
271
  <ul class="wpacu-script-attributes-settings wpacu-first">
272
- <li><a class="go-pro-link-no-style" href="<?php echo WPACU_PLUGIN_GO_PRO_URL; ?>"><span class="wpacu-tooltip wpacu-larger">This feature is available in the premium version of the plugin.<br /> Click here to upgrade to Pro!</span><img width="20" height="20" src="<?php echo WPACU_PLUGIN_URL; ?>/assets/icons/icon-lock.svg" valign="top" alt="" /></a>&nbsp; <strong>async</strong> &#10230;</li>
273
  <li><label for="async_none_<?php echo $data['row']['obj']->handle; ?>"><input disabled="disabled" id="async_none_<?php echo $data['row']['obj']->handle; ?>" type="radio" name="wpacu_async[<?php echo $data['row']['obj']->handle; ?>]" value="none" />none (default)</label></li>
274
  <li><label for="async_on_this_page_<?php echo $data['row']['obj']->handle; ?>"><input disabled="disabled" id="async_on_this_page_<?php echo $data['row']['obj']->handle; ?>" type="radio" name="wpacu_async[<?php echo $data['row']['obj']->handle; ?>]" value="on_this_page" />on this page</label></li>
275
  <li><label for="async_everywhere_<?php echo $data['row']['obj']->handle; ?>"><input disabled="disabled" id="async_everywhere_<?php echo $data['row']['obj']->handle; ?>" type="radio" name="wpacu_async[<?php echo $data['row']['obj']->handle; ?>]" value="everywhere" />everywhere</label></li>
@@ -277,7 +280,7 @@ $jqueryIconHtmlDepends = '<img src="'.WPACU_PLUGIN_URL.'/assets/icons/handles/ic
277
 
278
 
279
  <ul class="wpacu-script-attributes-settings">
280
- <li><a class="go-pro-link-no-style" href="<?php echo WPACU_PLUGIN_GO_PRO_URL; ?>"><span class="wpacu-tooltip wpacu-larger">This feature is available in the premium version of the plugin.<br /> Click here to upgrade to Pro!</span><img width="20" height="20" src="<?php echo WPACU_PLUGIN_URL; ?>/assets/icons/icon-lock.svg" valign="top" alt="" /></a>&nbsp; <strong>defer</strong> &#10230;</li>
281
  <li><label for="defer_none_<?php echo $data['row']['obj']->handle; ?>"><input disabled="disabled" id="defer_none_<?php echo $data['row']['obj']->handle; ?>" type="radio" name="wpacu_defer[<?php echo $data['row']['obj']->handle; ?>]" value="none" />none (default)</label></li>
282
  <li><label for="defer_on_this_page_<?php echo $data['row']['obj']->handle; ?>"><input disabled="disabled" id="defer_on_this_page_<?php echo $data['row']['obj']->handle; ?>" type="radio" name="wpacu_defer[<?php echo $data['row']['obj']->handle; ?>]" value="on_this_page" />on this page</label></li>
283
  <li><label for="defer_everywhere_<?php echo $data['row']['obj']->handle; ?>"><input disabled="disabled" id="defer_everywhere_<?php echo $data['row']['obj']->handle; ?>" type="radio" name="wpacu_defer[<?php echo $data['row']['obj']->handle; ?>]" value="everywhere" />everywhere</label></li>
37
  ?>
38
 
39
  <?php
40
+ $ver = (isset($data['row']['obj']->ver) && trim($data['row']['obj']->ver)) ? $data['row']['obj']->ver : $data['wp_version'];
41
+
42
  if (isset($data['row']['obj']->src, $data['row']['obj']->srcHref) && $data['row']['obj']->src !== '' && $data['row']['obj']->srcHref) {
43
  $relSrc = str_replace(site_url(), '', $data['row']['obj']->src);
44
 
45
  if (isset($data['row']['obj']->baseUrl)) {
46
  $relSrc = str_replace($data['row']['obj']->baseUrl, '/', $relSrc);
47
  }
48
+
49
+ $appendAfterSrcHref = (strpos($data['row']['obj']->srcHref, '?') === false) ? '?' : '&';
50
  ?>
51
+ <p><?php _e('Source:', WPACU_PLUGIN_TEXT_DOMAIN); ?> <a target="_blank" style="color: green;" href="<?php echo $data['row']['obj']->srcHref . $appendAfterSrcHref . 'ver='. $ver; ?>"><?php echo $relSrc; ?></a></p>
52
  <?php
53
  }
54
  ?>
60
  $depsOutput = '';
61
 
62
  $dependsOnText = (count($data['row']['obj']->deps) === 1)
63
+ ? __('"Child" of one "parent" file:', WPACU_PLUGIN_TEXT_DOMAIN)
64
+ : sprintf(__('"Child" of %s JS "parent" files:', WPACU_PLUGIN_TEXT_DOMAIN), count($data['row']['obj']->deps));
65
 
66
  $depsOutput .= $dependsOnText.' ';
67
 
78
  $extraInfo[] = $depsOutput;
79
  }
80
 
 
81
  $extraInfo[] = __('Version:', WPACU_PLUGIN_TEXT_DOMAIN).' '.$ver;
82
 
83
  if (isset($data['row']['obj']->position) && $data['row']['obj']->position !== '') {
86
 
87
  // [wpacu_lite]
88
  if (isset($data['row']['obj']->src) && $data['row']['obj']->src) {
89
+ $extraInfo[] = __('File Size:', WPACU_PLUGIN_TEXT_DOMAIN) . ' <a class="go-pro-link-no-style" href="' . WPACU_PLUGIN_GO_PRO_URL . '?utm_source=manage_asset&utm_medium=file_size"><span class="wpacu-tooltip">Upgrade to Pro and unlock all features</span><img width="20" height="20" src="' . WPACU_PLUGIN_URL . '/assets/icons/icon-lock.svg" valign="top" alt="" /> Pro Version</a>';
90
  }
91
  // [/wpacu_lite]
92
 
103
  <input class="input-unload-on-this-page <?php if (! $isBulkUnloaded) { echo 'wpacu-not-locked'; } ?>" id="script_<?php echo $data['row']['obj']->handle; ?>" <?php /* [wpacu_lite] */ if ($data['row']['global_unloaded'] || $data['row']['is_post_type_unloaded']) { /* [/wpacu_lite] */ echo 'disabled="disabled"'; } echo $data['row']['checked']; ?>name="<?php echo WPACU_PLUGIN_ID; ?>[scripts][]" type="checkbox" value="<?php echo $data['row']['obj']->handle; ?>" /><span class="wpacu_slider wpacu_round"></span>
104
  </label>
105
  <label class="wpacu_slider_text" for="script_<?php echo $data['row']['obj']->handle; ?>">
106
+ <?php _e('Unload on this page', WPACU_PLUGIN_TEXT_DOMAIN); ?>
107
  </label>
108
  </li>
109
  </ul>
111
  <?php
112
  if ($isBulkUnloaded) {
113
  ?>
114
+ <em>"<?php _e('Unload on this page', WPACU_PLUGIN_TEXT_DOMAIN); ?>" rule is locked and irrelevant as there are global rules set below that overwrite it. Once all the rules below are removed, this option will become available again.</em>
115
  <?php
116
  }
117
  ?>
122
  // Unloaded Everywhere
123
  if ($data['row']['global_unloaded']) {
124
  ?>
125
+ <p><strong style="color: #d54e21;"><?php _e('This JavaScript file is unloaded everywhere', WPACU_PLUGIN_TEXT_DOMAIN); ?></strong></p>
126
  <div class="wpacu-clearfix"></div>
127
  <?php
128
  }
161
  type="checkbox"
162
  name="wpacu_global_unload_scripts[]"
163
  value="<?php echo $data['row']['obj']->handle; ?>"/>
164
+ <?php _e('Unload Everywhere', WPACU_PLUGIN_TEXT_DOMAIN); ?> <small>* bulk unload</small></label>
165
  </li>
166
  <?php
167
  }
198
  name="wpacu_options_post_type_scripts[<?php echo $data['row']['obj']->handle; ?>]"
199
  checked="checked"
200
  value="default"/>
201
+ <?php _e('Keep bulk rule', WPACU_PLUGIN_TEXT_DOMAIN); ?></label>
202
  </li>
203
 
204
  <li>
207
  type="radio"
208
  name="wpacu_options_post_type_scripts[<?php echo $data['row']['obj']->handle; ?>]"
209
  value="remove"/>
210
+ <?php _e('Remove bulk rule', WPACU_PLUGIN_TEXT_DOMAIN); ?></label>
211
  </li>
212
  <?php
213
  } else {
269
  <!-- [wpacu_lite] -->
270
  <?php if (isset($data['row']['obj']->src) && $data['row']['obj']->src !== '') { ?>
271
  <div class="wpacu-script-attributes-area wpacu-lite">
272
+ <p>If loaded (not unloaded by any of the rules above), apply the following attributes: <em><a class="go-pro-link-no-style" href="<?php echo WPACU_PLUGIN_GO_PRO_URL; ?>">* <?php _e('this option is available in Pro version', WPACU_PLUGIN_TEXT_DOMAIN); ?></a></em></p>
273
 
274
  <ul class="wpacu-script-attributes-settings wpacu-first">
275
+ <li><a class="go-pro-link-no-style" href="<?php echo WPACU_PLUGIN_GO_PRO_URL; ?>"><span class="wpacu-tooltip wpacu-larger"><?php _e('This feature is available in the premium version of the plugin.', WPACU_PLUGIN_TEXT_DOMAIN); ?><br /> <?php _e('Click here to upgrade to Pro', WPACU_PLUGIN_TEXT_DOMAIN); ?>!</span><img width="20" height="20" src="<?php echo WPACU_PLUGIN_URL; ?>/assets/icons/icon-lock.svg" valign="top" alt="" /></a>&nbsp; <strong>async</strong> &#10230;</li>
276
  <li><label for="async_none_<?php echo $data['row']['obj']->handle; ?>"><input disabled="disabled" id="async_none_<?php echo $data['row']['obj']->handle; ?>" type="radio" name="wpacu_async[<?php echo $data['row']['obj']->handle; ?>]" value="none" />none (default)</label></li>
277
  <li><label for="async_on_this_page_<?php echo $data['row']['obj']->handle; ?>"><input disabled="disabled" id="async_on_this_page_<?php echo $data['row']['obj']->handle; ?>" type="radio" name="wpacu_async[<?php echo $data['row']['obj']->handle; ?>]" value="on_this_page" />on this page</label></li>
278
  <li><label for="async_everywhere_<?php echo $data['row']['obj']->handle; ?>"><input disabled="disabled" id="async_everywhere_<?php echo $data['row']['obj']->handle; ?>" type="radio" name="wpacu_async[<?php echo $data['row']['obj']->handle; ?>]" value="everywhere" />everywhere</label></li>
280
 
281
 
282
  <ul class="wpacu-script-attributes-settings">
283
+ <li><a class="go-pro-link-no-style" href="<?php echo WPACU_PLUGIN_GO_PRO_URL; ?>"><span class="wpacu-tooltip wpacu-larger"><?php _e('This feature is available in the premium version of the plugin.', WPACU_PLUGIN_TEXT_DOMAIN); ?><br /> <?php _e('Click here to upgrade to Pro', WPACU_PLUGIN_TEXT_DOMAIN); ?>!</span><img width="20" height="20" src="<?php echo WPACU_PLUGIN_URL; ?>/assets/icons/icon-lock.svg" valign="top" alt="" /></a>&nbsp; <strong>defer</strong> &#10230;</li>
284
  <li><label for="defer_none_<?php echo $data['row']['obj']->handle; ?>"><input disabled="disabled" id="defer_none_<?php echo $data['row']['obj']->handle; ?>" type="radio" name="wpacu_defer[<?php echo $data['row']['obj']->handle; ?>]" value="none" />none (default)</label></li>
285
  <li><label for="defer_on_this_page_<?php echo $data['row']['obj']->handle; ?>"><input disabled="disabled" id="defer_on_this_page_<?php echo $data['row']['obj']->handle; ?>" type="radio" name="wpacu_defer[<?php echo $data['row']['obj']->handle; ?>]" value="on_this_page" />on this page</label></li>
286
  <li><label for="defer_everywhere_<?php echo $data['row']['obj']->handle; ?>"><input disabled="disabled" id="defer_everywhere_<?php echo $data['row']['obj']->handle; ?>" type="radio" name="wpacu_defer[<?php echo $data['row']['obj']->handle; ?>]" value="everywhere" />everywhere</label></li>
templates/meta-box-loaded-assets/_asset-style-single-row.php CHANGED
@@ -21,7 +21,7 @@ sort($childHandles);
21
  <?php
22
  if ($isCoreFile && ! $hideCoreFiles) {
23
  ?>
24
- <span class="dashicons dashicons-warning wordpress-core-file"><span class="wpacu-tooltip">WordPress Core File<br />Not sure if needed or not? In this case, it's better to leave it loaded to avoid breaking the website.</span></span>
25
  <?php
26
  }
27
  ?>
@@ -31,17 +31,23 @@ sort($childHandles);
31
  if (! empty($childHandles)) {
32
  echo '<p><em style="font-size: 85%;"><span style="color: #0073aa; width: 19px; height: 19px;" class="dashicons dashicons-info"></span> This file has other CSS files depending on it. By unloading this CSS, the following "children" files will be unloaded too: <span style="color: green; font-weight: 600;">'.implode(', ', $childHandles).'</span></em></p>';
33
  }
 
 
34
  ?>
35
 
36
- <?php if (isset($data['row']['obj']->src, $data['row']['obj']->srcHref) && $data['row']['obj']->src && $data['row']['obj']->srcHref) {
37
- $relSrc = str_replace(site_url(), '', $data['row']['obj']->src);
 
 
 
 
 
38
 
39
- if (isset($data['row']['obj']->baseUrl)) {
40
- $relSrc = str_replace($data['row']['obj']->baseUrl, '/', $data['row']['obj']->src);
 
 
41
  }
42
- ?>
43
- <p><?php _e('Source:', WPACU_PLUGIN_TEXT_DOMAIN); ?> <a target="_blank" style="color: green;" href="<?php echo $data['row']['obj']->srcHref; ?>"><?php echo $relSrc; ?></a></p>
44
- <?php }
45
 
46
  $extraInfo = array();
47
 
@@ -49,8 +55,8 @@ sort($childHandles);
49
  $depsOutput = '';
50
 
51
  $dependsOnText = (count($data['row']['obj']->deps) === 1)
52
- ? __('Linked to one "parent" CSS file:')
53
- : sprintf(__('Linked to %s CSS "parent" files:', WPACU_PLUGIN_TEXT_DOMAIN), count($data['row']['obj']->deps));
54
 
55
  $depsOutput .= $dependsOnText.' ';
56
 
@@ -63,7 +69,6 @@ sort($childHandles);
63
  $extraInfo[] = $depsOutput;
64
  }
65
 
66
- $ver = (isset($data['row']['obj']->ver) && trim($data['row']['obj']->ver)) ? $data['row']['obj']->ver : $data['wp_version'];
67
  $extraInfo[] = __('Version:', WPACU_PLUGIN_TEXT_DOMAIN).' '.$ver;
68
 
69
  if (isset($data['row']['obj']->position) && $data['row']['obj']->position !== '') {
@@ -85,7 +90,7 @@ sort($childHandles);
85
  <div class="wpacu_asset_options_wrap">
86
  <ul class="wpacu_asset_options wpacu_exception_options_area" <?php if ($isBulkUnloaded) { echo 'style="display: none;"'; } ?>>
87
  <li class="wpacu_unload_this_page">
88
- <label class="wpacu_switch"><input class="input-unload-on-this-page <?php if (! $isBulkUnloaded) { echo 'wpacu-not-locked'; } ?>" id="style_<?php echo $data['row']['obj']->handle; ?>" <?php /* [wpacu_lite] */ if ($isBulkUnloaded) { /* [/wpacu_lite] */ echo 'disabled="disabled"'; } echo $data['row']['checked']; ?>name="<?php echo WPACU_PLUGIN_ID; ?>[styles][]" type="checkbox" value="<?php echo $data['row']['obj']->handle; ?>" /><span class="wpacu_slider wpacu_round"></span></label> <label class="wpacu_slider_text" for="style_<?php echo $data['row']['obj']->handle; ?>">Unload on this page</label>
89
  </li>
90
  </ul>
91
 
@@ -140,7 +145,7 @@ sort($childHandles);
140
  class="wpacu_global_unload wpacu_global_style"
141
  id="wpacu_global_unload_style_<?php echo $data['row']['obj']->handle; ?>" type="checkbox"
142
  name="wpacu_global_unload_styles[]" value="<?php echo $data['row']['obj']->handle; ?>"/>
143
- Unload Everywhere <small>* bulk unload</small></label>
144
  </li>
145
  <?php
146
  }
@@ -178,7 +183,7 @@ sort($childHandles);
178
  name="wpacu_options_post_type_styles[<?php echo $data['row']['obj']->handle; ?>]"
179
  checked="checked"
180
  value="default"/>
181
- Keep bulk rule</label>
182
  </li>
183
 
184
  <li>
@@ -187,7 +192,7 @@ sort($childHandles);
187
  type="radio"
188
  name="wpacu_options_post_type_styles[<?php echo $data['row']['obj']->handle; ?>]"
189
  value="remove"/>
190
- Remove bulk rule</label>
191
  </li>
192
  <?php
193
  } else {
@@ -236,7 +241,7 @@ sort($childHandles);
236
  <?php _e('Inline styling associated with the handle:', WPACU_PLUGIN_TEXT_DOMAIN); ?>
237
  <a class="wpacu-assets-inline-code-collapsible"
238
  <?php if ($inlineCodeStatus !== 'contracted') { echo 'wpacu-assets-inline-code-collapsible-active'; } ?>
239
- href="#">Show / Hide</a>
240
  <div class="wpacu-assets-inline-code-collapsible-content <?php if ($inlineCodeStatus !== 'contracted') { echo 'wpacu-open'; } ?>">
241
  <div>
242
  <p style="margin-bottom: 15px; line-height: normal !important;">
21
  <?php
22
  if ($isCoreFile && ! $hideCoreFiles) {
23
  ?>
24
+ <span class="dashicons dashicons-warning wordpress-core-file"><span class="wpacu-tooltip">WordPress Core File<br /><?php _e('Not sure if needed or not? In this case, it\'s better to leave it loaded to avoid breaking the website.', WPACU_PLUGIN_TEXT_DOMAIN); ?></span></span>
25
  <?php
26
  }
27
  ?>
31
  if (! empty($childHandles)) {
32
  echo '<p><em style="font-size: 85%;"><span style="color: #0073aa; width: 19px; height: 19px;" class="dashicons dashicons-info"></span> This file has other CSS files depending on it. By unloading this CSS, the following "children" files will be unloaded too: <span style="color: green; font-weight: 600;">'.implode(', ', $childHandles).'</span></em></p>';
33
  }
34
+
35
+ $ver = (isset($data['row']['obj']->ver) && trim($data['row']['obj']->ver)) ? $data['row']['obj']->ver : $data['wp_version'];
36
  ?>
37
 
38
+ <?php
39
+ if (isset($data['row']['obj']->src, $data['row']['obj']->srcHref) && $data['row']['obj']->src && $data['row']['obj']->srcHref) {
40
+ $relSrc = str_replace(site_url(), '', $data['row']['obj']->src);
41
+
42
+ if (isset($data['row']['obj']->baseUrl)) {
43
+ $relSrc = str_replace($data['row']['obj']->baseUrl, '/', $data['row']['obj']->src);
44
+ }
45
 
46
+ $appendAfterSrcHref = (strpos($data['row']['obj']->srcHref, '?') === false) ? '?' : '&';
47
+ ?>
48
+ <p><?php _e('Source:', WPACU_PLUGIN_TEXT_DOMAIN); ?> <a target="_blank" style="color: green;" href="<?php echo $data['row']['obj']->srcHref . $appendAfterSrcHref . 'ver='.$ver; ?>"><?php echo $relSrc; ?></a></p>
49
+ <?php
50
  }
 
 
 
51
 
52
  $extraInfo = array();
53
 
55
  $depsOutput = '';
56
 
57
  $dependsOnText = (count($data['row']['obj']->deps) === 1)
58
+ ? __('"Child" of one "parent" CSS file:')
59
+ : sprintf(__('"Child" of %s CSS "parent" files:', WPACU_PLUGIN_TEXT_DOMAIN), count($data['row']['obj']->deps));
60
 
61
  $depsOutput .= $dependsOnText.' ';
62
 
69
  $extraInfo[] = $depsOutput;
70
  }
71
 
 
72
  $extraInfo[] = __('Version:', WPACU_PLUGIN_TEXT_DOMAIN).' '.$ver;
73
 
74
  if (isset($data['row']['obj']->position) && $data['row']['obj']->position !== '') {
90
  <div class="wpacu_asset_options_wrap">
91
  <ul class="wpacu_asset_options wpacu_exception_options_area" <?php if ($isBulkUnloaded) { echo 'style="display: none;"'; } ?>>
92
  <li class="wpacu_unload_this_page">
93
+ <label class="wpacu_switch"><input class="input-unload-on-this-page <?php if (! $isBulkUnloaded) { echo 'wpacu-not-locked'; } ?>" id="style_<?php echo $data['row']['obj']->handle; ?>" <?php /* [wpacu_lite] */ if ($isBulkUnloaded) { /* [/wpacu_lite] */ echo 'disabled="disabled"'; } echo $data['row']['checked']; ?>name="<?php echo WPACU_PLUGIN_ID; ?>[styles][]" type="checkbox" value="<?php echo $data['row']['obj']->handle; ?>" /><span class="wpacu_slider wpacu_round"></span></label> <label class="wpacu_slider_text" for="style_<?php echo $data['row']['obj']->handle; ?>"><?php _e('Unload on this page', WPACU_PLUGIN_TEXT_DOMAIN); ?></label>
94
  </li>
95
  </ul>
96
 
145
  class="wpacu_global_unload wpacu_global_style"
146
  id="wpacu_global_unload_style_<?php echo $data['row']['obj']->handle; ?>" type="checkbox"
147
  name="wpacu_global_unload_styles[]" value="<?php echo $data['row']['obj']->handle; ?>"/>
148
+ <?php _e('Unload Everywhere', WPACU_PLUGIN_TEXT_DOMAIN); ?> <small>* bulk unload</small></label>
149
  </li>
150
  <?php
151
  }
183
  name="wpacu_options_post_type_styles[<?php echo $data['row']['obj']->handle; ?>]"
184
  checked="checked"
185
  value="default"/>
186
+ <?php _e('Keep bulk rule', WPACU_PLUGIN_TEXT_DOMAIN); ?></label>
187
  </li>
188
 
189
  <li>
192
  type="radio"
193
  name="wpacu_options_post_type_styles[<?php echo $data['row']['obj']->handle; ?>]"
194
  value="remove"/>
195
+ <?php _e('Remove bulk rule', WPACU_PLUGIN_TEXT_DOMAIN); ?></label>
196
  </li>
197
  <?php
198
  } else {
241
  <?php _e('Inline styling associated with the handle:', WPACU_PLUGIN_TEXT_DOMAIN); ?>
242
  <a class="wpacu-assets-inline-code-collapsible"
243
  <?php if ($inlineCodeStatus !== 'contracted') { echo 'wpacu-assets-inline-code-collapsible-active'; } ?>
244
+ href="#"><?php _e('Show / Hide', WPACU_PLUGIN_TEXT_DOMAIN); ?></a>
245
  <div class="wpacu-assets-inline-code-collapsible-content <?php if ($inlineCodeStatus !== 'contracted') { echo 'wpacu-open'; } ?>">
246
  <div>
247
  <p style="margin-bottom: 15px; line-height: normal !important;">
templates/meta-box-loaded-assets/view-by-location.php CHANGED
@@ -21,7 +21,12 @@ $listAreaStatus = $data['plugin_settings']['assets_list_layout_areas_status'];
21
  <?php
22
  if (! empty($data['all']['styles']) || ! empty($data['all']['scripts'])) {
23
  ?>
24
- <p><?php echo sprintf(__('Please select the styles &amp; scripts that are %sNOT NEEDED%s from the list below. Not sure which ones to unload? 🤔 Use "Test Mode" (to make the changes apply only to you), while you are going through the trial &amp; error process.', WPACU_PLUGIN_TEXT_DOMAIN), '<span style="color: #CC0000;"><strong>', '</strong></span>'); ?> <?php echo __('"Load in on this page (make exception)" will take effect when a bulk unload rule is used. Otherwise, the asset will load anyway unless you select it for unload.', WPACU_PLUGIN_TEXT_DOMAIN); ?></p>
 
 
 
 
 
25
  <?php
26
  if ($data['plugin_settings']['hide_core_files']) {
27
  ?>
@@ -123,15 +128,13 @@ $listAreaStatus = $data['plugin_settings']['assets_list_layout_areas_status'];
123
  <?php if ($locationMain === 'plugins') { ?>
124
  <div class="wpacu-plugin-toggle-all">
125
  <ul>
126
- <li>"Unload on this page"</li>
127
  <li>
128
  <a class="wpacu-plugin-check-all"
129
- data-wpacu-plugin="<?php echo $locationChild; ?>" href="#">Check
130
- All</a>
131
  |
132
  <a class="wpacu-plugin-uncheck-all"
133
- data-wpacu-plugin="<?php echo $locationChild; ?>" href="#">Uncheck
134
- All</a>
135
  </li>
136
  </ul>
137
  </div>
@@ -169,7 +172,7 @@ $listAreaStatus = $data['plugin_settings']['assets_list_layout_areas_status'];
169
  &nbsp;You're using <a href="<?php echo admin_url('admin.php?page=ct_dashboard_page'); ?>" target="_blank"><span style="font-weight: 600; color: #6036ca;">Oxygen</span></a> to design your site, which disables the WordPress theme system. Thus, no assets related to the theme are loaded.
170
  </div>
171
  <?php } else { ?>
172
- <div style="padding: 0 0 16px 16px;">There are no CSS/JS loaded from this location.</div>
173
  <?php } ?>
174
  <?php
175
  }
21
  <?php
22
  if (! empty($data['all']['styles']) || ! empty($data['all']['scripts'])) {
23
  ?>
24
+ <p><?php echo sprintf(
25
+ __('Please select the styles &amp; scripts that are %sNOT NEEDED%s from the list below. Not sure which ones to unload? %s Use "Test Mode" (to make the changes apply only to you), while you are going through the trial &amp; error process.', WPACU_PLUGIN_TEXT_DOMAIN),
26
+ '<span style="color: #CC0000;"><strong>',
27
+ '</strong></span>',
28
+ '<img draggable="false" class="emoji" style="max-width: 26px; max-height: 26px;" alt="" src="https://s.w.org/images/core/emoji/11.2.0/svg/1f914.svg">'
29
+ ); ?> <?php echo __('"Load in on this page (make exception)" will take effect when a bulk unload rule is used. Otherwise, the asset will load anyway unless you select it for unload.', WPACU_PLUGIN_TEXT_DOMAIN); ?></p>
30
  <?php
31
  if ($data['plugin_settings']['hide_core_files']) {
32
  ?>
128
  <?php if ($locationMain === 'plugins') { ?>
129
  <div class="wpacu-plugin-toggle-all">
130
  <ul>
131
+ <li>"<?php _e('Unload on this page', WPACU_PLUGIN_TEXT_DOMAIN); ?>"</li>
132
  <li>
133
  <a class="wpacu-plugin-check-all"
134
+ data-wpacu-plugin="<?php echo $locationChild; ?>" href="#"><?php _e('Check All', WPACU_PLUGIN_TEXT_DOMAIN); ?></a>
 
135
  |
136
  <a class="wpacu-plugin-uncheck-all"
137
+ data-wpacu-plugin="<?php echo $locationChild; ?>" href="#"><?php _e('Uncheck All', WPACU_PLUGIN_TEXT_DOMAIN); ?></a>
 
138
  </li>
139
  </ul>
140
  </div>
172
  &nbsp;You're using <a href="<?php echo admin_url('admin.php?page=ct_dashboard_page'); ?>" target="_blank"><span style="font-weight: 600; color: #6036ca;">Oxygen</span></a> to design your site, which disables the WordPress theme system. Thus, no assets related to the theme are loaded.
173
  </div>
174
  <?php } else { ?>
175
+ <div style="padding: 0 0 16px 16px;"><?php _e('There are no CSS/JS loaded from this location.', WPACU_PLUGIN_TEXT_DOMAIN); ?></div>
176
  <?php } ?>
177
  <?php
178
  }
templates/meta-box-loaded.php CHANGED
@@ -18,23 +18,23 @@ if (! $metaBoxLoadedFine) {
18
  // Errors for "WP Remove Post"? Print them out
19
  ?>
20
  <div class="ajax-wp-remote-post-call-error-area">
21
- <p><span class="dashicons dashicons-warning"></span> It looks like "WP Remote Post" method for retrieving assets via the Dashboard is not working in this environment.</p>
22
- <p>Since the server (from its IP) is making the call, it will not "behave" in the same way as the "Direct" method, which could bypass for instance any authentication request (you might use a staging website that is protected by login credentials).</p>
23
- <p>Consider using "Direct" method. If that doesn't work either, use the "Manage in the Front-end" option (which should always work in any instance) and submit a ticket regarding the problem you're having. Here's the output received by the call:</p>
24
 
25
  <table class="table-data">
26
  <tr>
27
- <td><strong>CODE:</strong></td>
28
  <td><?php echo $data['wp_remote_post']['response']['code']; ?></td>
29
  </tr>
30
 
31
  <tr>
32
- <td><strong>MESSAGE:</strong></td>
33
  <td><?php echo $data['wp_remote_post']['response']['message']; ?></td>
34
  </tr>
35
 
36
  <tr>
37
- <td><strong>OUTPUT:</strong></td>
38
  <td><?php echo $data['wp_remote_post']['body']; ?></td>
39
  </tr>
40
  </table>
@@ -65,13 +65,13 @@ if (isset($data['page_template'])) {
65
 
66
  if (\WpAssetCleanUp\Misc::isHomePage()) {
67
  ?>
68
- <p><strong><span style="color: #0f6cab;" class="dashicons dashicons-admin-home"></span> You are currently viewing the home page.</strong></p>
69
  <?php
70
  }
71
 
72
  elseif (\WpAssetCleanUp\Misc::isBlogPage()) {
73
  ?>
74
- <p><strong><span style="color: #0f6cab;" class="dashicons dashicons-admin-post"></span> You are currently viewing the page that shows your latest posts.</strong></p>
75
  <?php
76
  }
77
 
@@ -118,7 +118,7 @@ elseif ($data['bulk_unloaded_type'] === 'post_type') {
118
  if (! is_404()) {
119
  ?>
120
  <div class="wpacu_verified">
121
- <strong>Page URL:</strong> <a target="_blank"
122
  href="<?php echo $data['fetch_url']; ?>"><span><?php echo $data['fetch_url']; ?></span></a>
123
  </div>
124
  <?php
18
  // Errors for "WP Remove Post"? Print them out
19
  ?>
20
  <div class="ajax-wp-remote-post-call-error-area">
21
+ <p><span class="dashicons dashicons-warning"></span> <?php _e('It looks like "WP Remote Post" method for retrieving assets via the Dashboard is not working in this environment.', WPACU_PLUGIN_TEXT_DOMAIN); ?></p>
22
+ <p><?php _e('Since the server (from its IP) is making the call, it will not "behave" in the same way as the "Direct" method, which could bypass for instance any authentication request (you might use a staging website that is protected by login credentials).', WPACU_PLUGIN_TEXT_DOMAIN); ?></p>
23
+ <p><?php _e('Consider using "Direct" method. If that doesn\'t work either, use the "Manage in the Front-end" option (which should always work in any instance) and submit a ticket regarding the problem you\'re having. Here\'s the output received by the call:', WPACU_PLUGIN_TEXT_DOMAIN); ?></p>
24
 
25
  <table class="table-data">
26
  <tr>
27
+ <td><strong><?php _e('CODE', WPACU_PLUGIN_TEXT_DOMAIN); ?>:</strong></td>
28
  <td><?php echo $data['wp_remote_post']['response']['code']; ?></td>
29
  </tr>
30
 
31
  <tr>
32
+ <td><strong><?php _e('MESSAGE', WPACU_PLUGIN_TEXT_DOMAIN); ?>:</strong></td>
33
  <td><?php echo $data['wp_remote_post']['response']['message']; ?></td>
34
  </tr>
35
 
36
  <tr>
37
+ <td><strong><?php _e('OUTPUT', WPACU_PLUGIN_TEXT_DOMAIN); ?>:</strong></td>
38
  <td><?php echo $data['wp_remote_post']['body']; ?></td>
39
  </tr>
40
  </table>
65
 
66
  if (\WpAssetCleanUp\Misc::isHomePage()) {
67
  ?>
68
+ <p><strong><span style="color: #0f6cab;" class="dashicons dashicons-admin-home"></span> <?php _e('You are currently viewing the home page.', WPACU_PLUGIN_TEXT_DOMAIN); ?></strong></p>
69
  <?php
70
  }
71
 
72
  elseif (\WpAssetCleanUp\Misc::isBlogPage()) {
73
  ?>
74
+ <p><strong><span style="color: #0f6cab;" class="dashicons dashicons-admin-post"></span> <?php _e('You are currently viewing the page that shows your latest posts.', WPACU_PLUGIN_TEXT_DOMAIN); ?></strong></p>
75
  <?php
76
  }
77
 
118
  if (! is_404()) {
119
  ?>
120
  <div class="wpacu_verified">
121
+ <strong><?php _e('Page URL', WPACU_PLUGIN_TEXT_DOMAIN); ?>:</strong> <a target="_blank"
122
  href="<?php echo $data['fetch_url']; ?>"><span><?php echo $data['fetch_url']; ?></span></a>
123
  </div>
124
  <?php
templates/meta-box-side-page-options.php CHANGED
@@ -14,7 +14,7 @@ if (! isset($data)) {
14
  <?php if (isset($data['page_options']['no_css_minify']) && $data['page_options']['no_css_minify']) { echo 'checked="checked"'; } ?>
15
  id="wpacu_page_options_no_css_minify"
16
  name="<?php echo WPACU_PLUGIN_ID; ?>_page_options[no_css_minify]"
17
- value="1" />Do not minify CSS on this page
18
  </label>
19
  </li>
20
  <li>
@@ -23,7 +23,7 @@ if (! isset($data)) {
23
  <?php if (isset($data['page_options']['no_css_optimize']) && $data['page_options']['no_css_optimize']) { echo 'checked="checked"'; } ?>
24
  id="wpacu_page_options_no_css_optimize"
25
  name="<?php echo WPACU_PLUGIN_ID; ?>_page_options[no_css_optimize]"
26
- value="1" />Do not combine CSS on this page
27
  </label>
28
  </li>
29
 
@@ -33,7 +33,7 @@ if (! isset($data)) {
33
  <?php if (isset($data['page_options']['no_js_minify']) && $data['page_options']['no_js_minify']) { echo 'checked="checked"'; } ?>
34
  id="wpacu_page_options_no_js_minify"
35
  name="<?php echo WPACU_PLUGIN_ID; ?>_page_options[no_js_minify]"
36
- value="1" />Do not minify JS files on this page
37
  </label>
38
  </li>
39
  <li>
@@ -42,7 +42,7 @@ if (! isset($data)) {
42
  <?php if (isset($data['page_options']['no_js_optimize']) && $data['page_options']['no_js_optimize']) { echo 'checked="checked"'; } ?>
43
  id="wpacu_page_options_no_js_optimize"
44
  name="<?php echo WPACU_PLUGIN_ID; ?>_page_options[no_js_optimize]"
45
- value="1" />Do not combine JavaScript on this page
46
  </label>
47
  </li>
48
 
@@ -52,7 +52,7 @@ if (! isset($data)) {
52
  <?php if (isset($data['page_options']['no_assets_settings']) && $data['page_options']['no_assets_settings']) { echo 'checked="checked"'; } ?>
53
  id="wpacu_page_options_no_assets_settings"
54
  name="<?php echo WPACU_PLUGIN_ID; ?>_page_options[no_assets_settings]"
55
- value="1" />Do not apply any CSS &amp; JavaScript settings (including async, defer, load &amp; unload rules) on this page
56
  </label>
57
  </li>
58
  </ul>
14
  <?php if (isset($data['page_options']['no_css_minify']) && $data['page_options']['no_css_minify']) { echo 'checked="checked"'; } ?>
15
  id="wpacu_page_options_no_css_minify"
16
  name="<?php echo WPACU_PLUGIN_ID; ?>_page_options[no_css_minify]"
17
+ value="1" /><?php _e('Do not minify CSS on this page', WPACU_PLUGIN_TEXT_DOMAIN); ?>
18
  </label>
19
  </li>
20
  <li>
23
  <?php if (isset($data['page_options']['no_css_optimize']) && $data['page_options']['no_css_optimize']) { echo 'checked="checked"'; } ?>
24
  id="wpacu_page_options_no_css_optimize"
25
  name="<?php echo WPACU_PLUGIN_ID; ?>_page_options[no_css_optimize]"
26
+ value="1" /><?php _e('Do not combine CSS on this page', WPACU_PLUGIN_TEXT_DOMAIN); ?>
27
  </label>
28
  </li>
29
 
33
  <?php if (isset($data['page_options']['no_js_minify']) && $data['page_options']['no_js_minify']) { echo 'checked="checked"'; } ?>
34
  id="wpacu_page_options_no_js_minify"
35
  name="<?php echo WPACU_PLUGIN_ID; ?>_page_options[no_js_minify]"
36
+ value="1" /><?php _e('Do not minify JS files on this page', WPACU_PLUGIN_TEXT_DOMAIN); ?>
37
  </label>
38
  </li>
39
  <li>
42
  <?php if (isset($data['page_options']['no_js_optimize']) && $data['page_options']['no_js_optimize']) { echo 'checked="checked"'; } ?>
43
  id="wpacu_page_options_no_js_optimize"
44
  name="<?php echo WPACU_PLUGIN_ID; ?>_page_options[no_js_optimize]"
45
+ value="1" /><?php _e('Do not combine JavaScript on this page', WPACU_PLUGIN_TEXT_DOMAIN); ?>
46
  </label>
47
  </li>
48
 
52
  <?php if (isset($data['page_options']['no_assets_settings']) && $data['page_options']['no_assets_settings']) { echo 'checked="checked"'; } ?>
53
  id="wpacu_page_options_no_assets_settings"
54
  name="<?php echo WPACU_PLUGIN_ID; ?>_page_options[no_assets_settings]"
55
+ value="1" /><?php _e('Do not apply any CSS &amp; JavaScript settings (including "async", "defer" &amp; unload rules) on this page', WPACU_PLUGIN_TEXT_DOMAIN); ?>
56
  </label>
57
  </li>
58
  </ul>
templates/settings-frontend.php CHANGED
@@ -36,7 +36,7 @@ if (! isset($data)) {
36
  ?>
37
  <div class="wpacu-warning">
38
  <strong><span class="dashicons dashicons-warning"></span> Important:</strong> You have enabled "<em>Enable caching for logged-in WordPress users</em>" in WP Rocket's Cache area.
39
- This could cause some issues with Asset CleanUp retrieving an outdated (cached) asset list below.
40
  If you experience issues such as unsaved settings or viewing assets from plugins that are disabled, consider using Asset CleanUp only in the Dashboard area (option "Manage in the Dashboard?" has to be enabled in plugin's settings).
41
  <!--
42
  -->
@@ -46,18 +46,18 @@ if (! isset($data)) {
46
  }
47
  }
48
  ?>
49
- <p><small>This area is shown only for the admin users and if "Manage in the Front-end?" was selected in the plugin's settings. Handles such as 'admin-bar' and 'wpassetcleanup-style' are not included as they are irrelevant since they are used by the plugin for this area.</small></p>
50
  <?php
51
  if ($data['is_woo_shop_page']) {
52
  ?>
53
- <p><strong><span style="color: #0f6cab;" class="dashicons dashicons-cart"></span> This a WooCommerce shop page ('product' type archive). Unloading assets will also take effect for the pagination/sorting pages (e.g. /2, /3, /?orderby=popularity etc.).</strong></p>
54
  <?php
55
  }
56
 
57
  if (isset($data['vars']['woo_url_not_match'])) {
58
  ?>
59
  <div class="wpacu_note wpacu_warning">
60
- <p>Although this page is detected as the home page, its URL is not the same as the one from "General Settings" &#187; "Site Address (URL)" and the WooCommerce plugin is not active anymore. This could be the "Shop" page that is no longer active.</p>
61
  </div>
62
  <?php
63
  }
@@ -65,38 +65,38 @@ if (! isset($data)) {
65
  require_once 'meta-box-loaded.php';
66
  } else {
67
  // Category, Tag, Search, 404, Author, Date pages (not supported by Lite version)
68
- $contentUnlockFeature = ' <p class="pro-page-unlock-notice">To unlock this feature, you can upgrade to the Pro version.</p>';
69
  $utm_medium = '';
70
 
71
  if (\WpAssetCleanUp\Main::isWpDefaultSearchPage()) {
72
- echo '<span class="dashicons dashicons-search"></span> This is a <strong>WordPress Search Page</strong> and unloading the unneeded CSS &amp; JS can be done in Asset CleanUp Pro.'.$contentUnlockFeature;
73
  $utm_medium = 'search_page';
74
  } elseif (is_404()) {
75
- echo '<span class="dashicons dashicons-warning"></span> This is a <strong>404 (Not Found) Page</strong> and unloading the unneeded CSS &amp; JS can be done in Asset CleanUp Pro.'.$contentUnlockFeature;
76
  $utm_medium = '404_not_found_page';
77
  } elseif (is_author()) {
78
- echo '<span class="dashicons dashicons-admin-users"></span> This is an <strong>Author Page</strong> and unloading the unneeded CSS &amp; JS can be done in Asset CleanUp Pro.'.$contentUnlockFeature;
79
  $utm_medium = 'author_page';
80
  } elseif (is_category()) {
81
- echo '<span class="dashicons dashicons-category"></span> This is a <strong>Category (Taxonomy) Page</strong> and unloading the unneeded CSS &amp; JS can be done in Asset CleanUp Pro.'.$contentUnlockFeature;
82
  $utm_medium = 'category_page';
83
  } elseif (function_exists('is_product_category') && is_product_category()) {
84
- echo '<img src="'.WPACU_PLUGIN_URL . '/assets/icons/woocommerce-icon-logo.svg'.'" alt="" style="height: 40px !important; margin-top: -6px; margin-right: 5px;" align="middle" /> This is a <strong>WooCommerce Product Category (Taxonomy) Page</strong> and unloading the unneeded CSS &amp; JS can be done in Asset CleanUp Pro. '.$contentUnlockFeature;
85
  $utm_medium = 'woo_product_category_page';
86
  } elseif (is_date()) {
87
- echo '<span class="dashicons dashicons-calendar-alt"></span> This is a <strong>Date (Archive) Page</strong> and unloading the unneeded CSS &amp; JS can be done in Asset CleanUp Pro.'.$contentUnlockFeature;
88
  $utm_medium = 'date_page';
89
  } elseif (is_tag()) {
90
- echo '<span class="dashicons dashicons-tag"></span> This is a <strong>Tag (Archive) Page</strong> and unloading the unneeded CSS &amp; JS can be done in Asset CleanUp Pro.'.$contentUnlockFeature;
91
  $utm_medium = 'tag_page';
92
  } elseif (is_tax()) {
93
- echo '<span class="dashicons dashicons-tag"></span> This is a <strong>Taxonomy Page</strong> and unloading the unneeded CSS &amp; JS can be done in Asset CleanUp Pro.'.$contentUnlockFeature;
94
  $utm_medium = 'taxonomy_page';
95
  }
96
  ?>
97
  <p>
98
  <a class="go-pro-button" target="_blank" href="<?php echo WPACU_PLUGIN_GO_PRO_URL; ?>?utm_source=front_end_manage&utm_medium=<?php echo $utm_medium; ?>">
99
- <span class="dashicons dashicons-cart"></span>&nbsp; Upgrade to Asset CleanUp Pro</a>
100
  </p>
101
  <?php
102
  }
36
  ?>
37
  <div class="wpacu-warning">
38
  <strong><span class="dashicons dashicons-warning"></span> Important:</strong> You have enabled "<em>Enable caching for logged-in WordPress users</em>" in WP Rocket's Cache area.
39
+ <?php _e('This could cause some issues with Asset CleanUp retrieving an outdated (cached) asset list below.', WPACU_PLUGIN_TEXT_DOMAIN); ?>
40
  If you experience issues such as unsaved settings or viewing assets from plugins that are disabled, consider using Asset CleanUp only in the Dashboard area (option "Manage in the Dashboard?" has to be enabled in plugin's settings).
41
  <!--
42
  -->
46
  }
47
  }
48
  ?>
49
+ <p><small><?php _e('This area is shown only for the admin users and if "Manage in the Front-end?" was selected in the plugin\'s settings. Handles such as \'admin-bar\' and \'wpassetcleanup-style\' are not included as they are irrelevant since they are used by the plugin for this area.', WPACU_PLUGIN_TEXT_DOMAIN); ?></small></p>
50
  <?php
51
  if ($data['is_woo_shop_page']) {
52
  ?>
53
+ <p><strong><span style="color: #0f6cab;" class="dashicons dashicons-cart"></span> <?php _e('This a WooCommerce shop page (\'product\' type archive).', WPACU_PLUGIN_TEXT_DOMAIN); ?> <?php _e('Unloading CSS/JS will also take effect for the pagination/sorting pages', WPACU_PLUGIN_TEXT_DOMAIN); ?>(e.g. /2, /3, /?orderby=popularity etc.).</strong></p>
54
  <?php
55
  }
56
 
57
  if (isset($data['vars']['woo_url_not_match'])) {
58
  ?>
59
  <div class="wpacu_note wpacu_warning">
60
+ <p><?php _e('Although this page is detected as the home page, its URL is not the same as the one from "General Settings" &#187; "Site Address (URL)" and the WooCommerce plugin is not active anymore. This could be the "Shop" page that is no longer active.', WPACU_PLUGIN_TEXT_DOMAIN); ?></p>
61
  </div>
62
  <?php
63
  }
65
  require_once 'meta-box-loaded.php';
66
  } else {
67
  // Category, Tag, Search, 404, Author, Date pages (not supported by Lite version)
68
+ $contentUnlockFeature = ' <p class="pro-page-unlock-notice">'.__('To unlock this feature, you can upgrade to the Pro version.', WPACU_PLUGIN_TEXT_DOMAIN).'</p>';
69
  $utm_medium = '';
70
 
71
  if (\WpAssetCleanUp\Main::isWpDefaultSearchPage()) {
72
+ echo '<span class="dashicons dashicons-search"></span> '.__('This is a <strong>WordPress Search Page</strong> and managing CSS &amp; JS (unload, defer, async, etc.) for this page type can be done in Asset CleanUp Pro.', WPACU_PLUGIN_TEXT_DOMAIN) . $contentUnlockFeature;
73
  $utm_medium = 'search_page';
74
  } elseif (is_404()) {
75
+ echo '<span class="dashicons dashicons-warning"></span> '.__('This is a <strong>404 (Not Found) Page</strong> and managing CSS &amp; JS (unload, defer, async, etc.) for this page type can be done in Asset CleanUp Pro.', WPACU_PLUGIN_TEXT_DOMAIN) . $contentUnlockFeature;
76
  $utm_medium = '404_not_found_page';
77
  } elseif (is_author()) {
78
+ echo '<span class="dashicons dashicons-admin-users"></span> '.__('This is an <strong>Author Page</strong> and managing CSS &amp; JS (unload, defer, async, etc.) for this page type can be done in Asset CleanUp Pro.', WPACU_PLUGIN_TEXT_DOMAIN) . $contentUnlockFeature;
79
  $utm_medium = 'author_page';
80
  } elseif (is_category()) {
81
+ echo '<span class="dashicons dashicons-category"></span> '.__('This is a <strong>Category (Taxonomy) Page</strong> and managing CSS &amp; JS (unload, defer, async, etc.) for this page type can be done in Asset CleanUp Pro.', WPACU_PLUGIN_TEXT_DOMAIN) . $contentUnlockFeature;
82
  $utm_medium = 'category_page';
83
  } elseif (function_exists('is_product_category') && is_product_category()) {
84
+ echo '<img src="'.WPACU_PLUGIN_URL . '/assets/icons/woocommerce-icon-logo.svg'.'" alt="" style="height: 40px !important; margin-top: -6px; margin-right: 5px;" align="middle" /> '.__('This is a <strong>WooCommerce Product Category (Taxonomy) Page</strong> and managing CSS &amp; JS (unload, defer, async, etc.) for this page type can be done in Asset CleanUp Pro.', WPACU_PLUGIN_TEXT_DOMAIN) . $contentUnlockFeature;
85
  $utm_medium = 'woo_product_category_page';
86
  } elseif (is_date()) {
87
+ echo '<span class="dashicons dashicons-calendar-alt"></span> '.__('This is a <strong>Date (Archive) Page</strong> and managing (unload, defer, async etc.) CSS &amp; JS for this page type can be done in Asset CleanUp Pro.', WPACU_PLUGIN_TEXT_DOMAIN) . $contentUnlockFeature;
88
  $utm_medium = 'date_page';
89
  } elseif (is_tag()) {
90
+ echo '<span class="dashicons dashicons-tag"></span> '.__('This is a <strong>Tag (Archive) Page</strong> and managing CSS &amp; JS (unload, defer, async, etc.) for this page type can be done in Asset CleanUp Pro.', WPACU_PLUGIN_TEXT_DOMAIN) . $contentUnlockFeature;
91
  $utm_medium = 'tag_page';
92
  } elseif (is_tax()) {
93
+ echo '<span class="dashicons dashicons-tag"></span> '.__('This is a <strong>Taxonomy Page</strong> and managing CSS &amp; JS (unload, defer, async, etc.) for this page type can be done in Asset CleanUp Pro.', WPACU_PLUGIN_TEXT_DOMAIN) . $contentUnlockFeature;
94
  $utm_medium = 'taxonomy_page';
95
  }
96
  ?>
97
  <p>
98
  <a class="go-pro-button" target="_blank" href="<?php echo WPACU_PLUGIN_GO_PRO_URL; ?>?utm_source=front_end_manage&utm_medium=<?php echo $utm_medium; ?>">
99
+ <span class="dashicons dashicons-cart"></span>&nbsp; <?php _e('Upgrade to Asset CleanUp Pro', WPACU_PLUGIN_TEXT_DOMAIN); ?></a>
100
  </p>
101
  <?php
102
  }
wpacu.php CHANGED
@@ -2,13 +2,13 @@
2
  /*
3
  * Plugin Name: Asset CleanUp: Page Speed Booster
4
  * Plugin URI: https://wordpress.org/plugins/wp-asset-clean-up/
5
- * Version: 1.3.2.5
6
  * Description: Unload Chosen Scripts & Styles from Posts/Pages to reduce HTTP Requests, Combine/Minify CSS/JS files
7
  * Author: Gabriel Livan
8
  * Author URI: http://gabelivan.com/
9
  */
10
 
11
- define('WPACU_PLUGIN_VERSION', '1.3.2.5');
12
 
13
  // Exit if accessed directly
14
  if (! defined('ABSPATH')) {
@@ -67,8 +67,12 @@ if ($wpacuWrongPhp && is_admin()) { // Dashboard
67
  function wpAssetCleanUpWrongPhpNotice()
68
  {
69
  echo '<div class="error is-dismissible"><p>'.
70
- __('<strong>'.WPACU_PLUGIN_TITLE.'</strong> requires <span style="color: green;"><strong>5.4+</strong> PHP version</span> installed. You have <strong>'.PHP_VERSION.'</strong>. If you\'re website is compatible with PHP 7+ (e.g. you can check with your developers or contact the hosting company), it\'s strongly recommended to upgrade for a better performance. The plugin has been deactivated.', WPACU_PLUGIN_TEXT_DOMAIN) .
71
- '</p></div>';
 
 
 
 
72
 
73
  if (array_key_exists('active', $_GET)) {
74
  unset($_GET['activate']);
2
  /*
3
  * Plugin Name: Asset CleanUp: Page Speed Booster
4
  * Plugin URI: https://wordpress.org/plugins/wp-asset-clean-up/
5
+ * Version: 1.3.2.6
6
  * Description: Unload Chosen Scripts & Styles from Posts/Pages to reduce HTTP Requests, Combine/Minify CSS/JS files
7
  * Author: Gabriel Livan
8
  * Author URI: http://gabelivan.com/
9
  */
10
 
11
+ define('WPACU_PLUGIN_VERSION', '1.3.2.6');
12
 
13
  // Exit if accessed directly
14
  if (! defined('ABSPATH')) {
67
  function wpAssetCleanUpWrongPhpNotice()
68
  {
69
  echo '<div class="error is-dismissible"><p>'.
70
+ sprintf(
71
+ __('%s requires %s PHP version installed. You have %s. If you\'re website is compatible with PHP 7+ (e.g. you can check with your developers or contact the hosting company), it\'s strongly recommended to upgrade for a better performance. The plugin has been deactivated.', WPACU_PLUGIN_TEXT_DOMAIN),
72
+ '<strong>'.WPACU_PLUGIN_TITLE.'</strong>',
73
+ '<span style="color: green;"><strong>5.4+</strong></span>',
74
+ '<strong>'.PHP_VERSION.'</strong>'
75
+ ) . '</p></div>';
76
 
77
  if (array_key_exists('active', $_GET)) {
78
  unset($_GET['activate']);