{"id":49742,"date":"2016-03-27T00:19:14","date_gmt":"2016-03-27T00:19:14","guid":{"rendered":"https:\/\/wordpress.org\/plugins-wp\/rocket-footer-js\/"},"modified":"2020-03-09T00:25:15","modified_gmt":"2020-03-09T00:25:15","slug":"rocket-footer-js","status":"closed","type":"plugin","link":"https:\/\/sa.wordpress.org\/plugins\/rocket-footer-js\/","author":12425250,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"3.2.3","stable_tag":"trunk","tested":"5.4.19","requires":"4.2.0","requires_php":"","requires_plugins":"","header_name":"WP Rocket Footer JS","header_author":"Derrick Hammer","header_description":"","assets_banners_color":"","last_updated":"2020-03-09 00:25:15","external_support_url":"","external_repository_url":"","donate_link":"http:\/\/www.paypal.me\/pcfreak30","header_plugin_uri":"https:\/\/github.com\/pcfreak30\/rocket-footer-js","header_author_uri":"https:\/\/www.derrickhammer.com","rating":4.1,"author_block_rating":0,"active_installs":300,"downloads":85796,"num_ratings":0,"support_threads":1,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","changelog"],"tags":[],"upgrade_notice":[],"ratings":{"1":"2","2":"2","3":0,"4":0,"5":"11"},"assets_icons":[],"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.3.5","1.1.10","1.1.12","1.1.13","1.1.14","1.1.15","1.1.16","1.1.3","1.1.7","1.1.8","1.2.0","1.2.1","1.2.2","1.2.3","1.3.0","1.3.1","1.3.2","1.3.3","1.3.4","1.3.5","1.3.6","1.3.7","1.3.8","1.3.9","1.4.0","1.4.1","1.4.2","1.4.3","1.4.4","1.4.5","1.4.6","2.0.0","3.0.0","3.0.1","3.0.10","3.0.11","3.0.12","3.0.13","3.0.14","3.0.15","3.0.16","3.0.2","3.0.3","3.0.4","3.0.6","3.0.7","3.0.8","3.0.9","3.1.0","3.1.1","3.1.2","3.2.0","3.2.1","3.2.2","3.2.3"],"block_files":[],"assets_screenshots":[],"screenshots":[],"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[132326,3333,4884,1452,54246],"plugin_category":[52],"plugin_contributors":[92956],"plugin_business_model":[],"class_list":["post-49742","plugin","type-plugin","status-closed","hentry","plugin_tags-async-js","plugin_tags-footer-javascript","plugin_tags-lazy-load","plugin_tags-optimize","plugin_tags-wp-rocket","plugin_category-performance","plugin_contributors-pcfreak30","plugin_committers-pcfreak30"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/s.w.org\/plugins\/geopattern-icon\/rocket-footer-js.svg","icon_2x":false,"generated":true},"screenshots":[],"raw_content":"<!--section=description-->\n<p><strong>This is NOT an official addon to WP-Rocket!<\/strong><\/p>\n\n<p>This plugin will do the following:<\/p>\n\n<ul>\n<li>Process all inline and external JS to one file, not multiple, and put at the footer with async on<\/li>\n<li>Put all <em>localized<\/em> scripts together before the primary script above<\/li>\n<li>Automatically optimize popular 3rd party services including:\n\n<ul>\n<li>Tawk.to<\/li>\n<li>WP Rockets lazyload<\/li>\n<li>Google Analytics<\/li>\n<li>Double Click Google Analytics<\/li>\n<li>Avvo.com Tracking<\/li>\n<li>Pushcrew Tracking<\/li>\n<li>Clicky Tracking<\/li>\n<li>Facebook Pixel Tracking<\/li>\n<li>MCAfee Secure<\/li>\n<li>Sumo Ne<\/li>\n<li>Pingdom Prum<\/li>\n<li>Google Tag Manager<\/li>\n<li>Mouse Flow<\/li>\n<li>Cornerstone Page Builder<\/li>\n<\/ul><\/li>\n<li>Automatically lazy load popular widgets if https:\/\/wordpress.org\/plugins\/lazy-load-xt\/ or https:\/\/wordpress.org\/plugins\/a3-lazy-load\/ are active. Services include:\n\n<ul>\n<li>Google Maps with Avada theme<\/li>\n<li>All Facebook social widgets<\/li>\n<li>All Twitter social widgets<\/li>\n<li>All Google Plus social widgets<\/li>\n<li>All Google Adsense advertisements<\/li>\n<li>Google Re-captcha<\/li>\n<li>Tumbler<\/li>\n<li>Amazon Ads<\/li>\n<li>Stumble Upon<\/li>\n<li>VK.com<\/li>\n<li>WooCommerce Social Media Share Buttons plugin<\/li>\n<li>Any iframe<\/li>\n<li>Blog Her Ads<\/li>\n<li>Video embeds (click to activate)<\/li>\n<li>Pin Interest<\/li>\n<\/ul><\/li>\n<\/ul>\n\n<p>If you are looking for a professional team to get your WordPress site to run faster, check us out for our speed optimization services at <a href=\"https:\/\/rankgrowdigital.com\/\">Rank Grow Digital<\/a><\/p>\n\n<!--section=installation-->\n<p>This section describes how to install the plugin and get it working.<\/p>\n\n<ol>\n<li>Upload the plugin files to the <code>\/wp-content\/plugins\/rocket-footer-js<\/code> directory, or install the plugin through the WordPress plugins screen directly.<\/li>\n<li>Activate the plugin through the 'Plugins' screen in WordPress<\/li>\n<li>Clear WP-Rocket cache and view HTML source!<\/li>\n<\/ol>\n\n<!--section=changelog-->\n<h3>3.2.3<\/h3>\n\n<ul>\n<li>Bug: Fix typo in HubSpotForms module and fix broken code<\/li>\n<li>Bug: Handle edge case of HTML5 video not fully lazyloading due to jQuery not triggering on loadeddata event<\/li>\n<li>Feature: Add a pseudo css API to allow any elements background image to be lazyloaded<\/li>\n<li>Enhancement: Add filters around enqueuing auxiliary scripts &amp; default to not load the imagefixes script so that modules can flag it on at runtime<\/li>\n<li>Enhancement: Add micro-optimization by serving preminified versions of polyfills and lazysizes<\/li>\n<li>Enhancement: Improve cache management by deleting cache files when the objects are purged to handle edge cases<\/li>\n<li>Enhancement: Add support for purging cache via cron, using rocket_footer_js_background_cache_purge_item_threshold filter, and preload cache if enabled after<\/li>\n<li>Enhancement: Videos Module: Only set src\/data-src if this is a video. If video is autoplay before we process it, skip it<\/li>\n<li>Enhancement: Videos Module: Add vimeo support<\/li>\n<li>Compatibility: Videos Module: Add videojs compatibility<\/li>\n<li>Compatibility: Add visual composer compatibility to lazy load background images<\/li>\n<li>Compatibility: Add custom event polyfill<\/li>\n<li>Compatibility: Add compatibility with wp-rocket's lazyload<\/li>\n<\/ul>\n\n<h3>3.2.2<\/h3>\n\n<ul>\n<li>Enhancement: Skip processing background image if it is flagged for no lazy load<\/li>\n<li>Enhancement: Centralize multibyte encoding for entities into the DOMDocument class so that style tags do not get processed<\/li>\n<\/ul>\n\n<h3>3.2.1<\/h3>\n\n<ul>\n<li>Bug: For elementor module, if in admin, functions should still run<\/li>\n<li>Bug: Encode both scripts and styles in DOM processing due to further edge cases found<\/li>\n<li>Enhancement: Add a3 lazy load excludes as a consideration for determining if lazy load is on<\/li>\n<li>Enhancement: Defer init checks for Elementor modules so that lazy load excludes can be processed<\/li>\n<li>Enhancement: Add support for wp-rocket file excludes<\/li>\n<li>Enhancement: For elementor module, add an option for a video thumbnail to have a custom alt attribute<\/li>\n<li>Enhancement: For video lazyload, add support for custom alt attribute, and fall back to oembed title<\/li>\n<li>Enhancement: Ensure wp-rocket preload only runs on cron by conditionally deferring it<\/li>\n<li>Integration: Add lazyload compatibility for WP Ultimate Post Grid<\/li>\n<\/ul>\n\n<h3>3.2.0<\/h3>\n\n<ul>\n<li>Bug: Add more compatibility fixes with a3 lazy load<\/li>\n<li>Bug: Fix bugs with jQuery compatibility of lazySizes<\/li>\n<li>Bug: Don't try and do processing during JSON\/API requests<\/li>\n<li>Bug\/Enhancement: Misc fixes and improvements to the video lazyload<\/li>\n<li>Bug: Remove the preload functionality from lazySizes<\/li>\n<li>Feature: Integrate WebPExpress support to allow WebP to work with other integrations\/modules and to enable a separate cache for webp when supported<\/li>\n<li>Feature: Enable lazyload to be managed per element inside the Elementor Editor<\/li>\n<li>Compatibility: Add compatibility css for elementor in the video lazyload<\/li>\n<li>Compatibility: Add more Fusion logo options to be processed by CDN<\/li>\n<li>Compatibility: Prevent divi from concatenating JS<\/li>\n<li>Integration: Add compatibility with smart slider for lazy load<\/li>\n<li>Integration: Add compatibility with EWWW to prevent image processing from running on LazyLoaded Video thumbnails due to the excessive processing time<\/li>\n<li>Integration: Add compatibility With Essential Addons for Elementor<\/li>\n<li>Integration: Ignore hubspot forms in JS rewrite module and add LazyLoad Compatibility with HubSpot<\/li>\n<li>Integration: Add lazyload compatibility with Fusion portfolio elements<\/li>\n<li>Integration: Add lazyload compatibility with Fusion's lazySizes<\/li>\n<li>Integration: Add compatibility with Rank Math SEO<\/li>\n<li>Enhancement: Add hooks to allow the minify cache key to be modified<\/li>\n<li>Enhancement: Ensure picturefill JS script is loaded if CSS plugin is not active<\/li>\n<li>Enhancement: Improve rendering of lazyloaded elements with lazySizes<\/li>\n<li>Enhancement: Enable the video thumbnail to be a responsive image based on all image sizes registered, and support conditionally lazyloading it. Also support integration with WEBP.<\/li>\n<li>Enhancement: Improve check for if lazy load should be enabled<\/li>\n<li>Enhancement: Add filter to bypass reading\/saving of cache<\/li>\n<li>Enhancement: Refactor and improve the divi lazyload suypport for videos<\/li>\n<li>Enhancement: Add webp support to MetaSlider<\/li>\n<li>Enhancement: Add compatibility with the wp-rocket preloader to ensure that it will run<\/li>\n<li>Enhancement: If the wp-rocket preloader is on, then run the preloader when site cache is cleared<\/li>\n<li>Enhancement: Clear a post cache when the post is saved<\/li>\n<li>Enhancement: Add support for a lazyloaded video thumbnail to not be lazyloaded via a data attribute, and expose that in the elementor editor<\/li>\n<li>Enhancement: Allow a lazyloaded video thumbnail to have it's responsive size manually set and expose that in the Elementor editor<\/li>\n<\/ul>\n\n<h3>3.1.2<\/h3>\n\n<ul>\n<li>Compatibility: Remove lazy load compatibility script for master slider as it is no longer needed<\/li>\n<\/ul>\n\n<h3>3.1.1<\/h3>\n\n<ul>\n<li>Bug: Verify that the found background properties have settings in elementor compatibility module<\/li>\n<li>Bug: Add background lazyload attribute to lazy load compatibility code<\/li>\n<li>Enhancement: Add font display swap to TypeKit module<\/li>\n<\/ul>\n\n<h3>3.1.0<\/h3>\n\n<ul>\n<li>Bug: Fix lazy load CSS to not be position absolute<\/li>\n<li>Bug: Hash the url without possible use of a CDN<\/li>\n<li>Bug: Fix gravity forms recaptcha lazy load support<\/li>\n<li>Enhancement: Migrate from lazyLoadXT to lazysizes for increase performance and less bugs with lazy load. For technical details the \"intersection observer\" version is used with polyfill's<\/li>\n<li>Compatibility: Fix with wp-rocket 3.1.x to prevent the default minify from processing and causing edge cases<\/li>\n<li>Compatibility: Add lazy load compatibility with Elementor image widget and sections\/column backgrounds and overlays<\/li>\n<li>Compatibility: Add lazy load compatibility with Elementor Pro posst grid cards and slick slider<\/li>\n<li>Compatibility: Add lazy load support for Google Maps widgets and combine Google Maps Pro module<\/li>\n<\/ul>\n\n<h3>3.0.16<\/h3>\n\n<ul>\n<li>Bug: Fix lazy load CSS to not be position absolute<\/li>\n<li>Bug: Fix edge case bug with DOMDocument mangling HTML entities<\/li>\n<li>Compatibility: Google Plus shut down, so support removed<\/li>\n<\/ul>\n\n<h3>3.0.15<\/h3>\n\n<ul>\n<li>Bug: Fix using css minify instead of JS minify<\/li>\n<\/ul>\n\n<h3>3.0.14<\/h3>\n\n<ul>\n<li>Bug: Set url scheme to prevent no protocol urls from bugging output<\/li>\n<li>Bug: Use prevAll and use find over children<\/li>\n<li>Bug: Don't process if url is empty<\/li>\n<li>Enhancement: Ensure avatar images are processed though CDN<\/li>\n<li>Enhancement: Add autoplay support for vimeo<\/li>\n<li>Compatibility: Add lazy load compatibility with \"Recaptcha In WP Comments Form\" plugin<\/li>\n<li>Compatibility: Add generic recaptcha lazy load support<\/li>\n<li>Compatibility: Add integration with Listify for lazyload compatibility<\/li>\n<li>Compatibility: Add integration with Buttonizer for lazy load compatibility<\/li>\n<li>Compatibility: Add integration with Masterslider for lazylopad compatibility<\/li>\n<li>Compatibility: Change file purge filter for compatibility with wp-rocket 3.2<\/li>\n<li>Misc: Update readme with more clear disclaimer<\/li>\n<\/ul>\n\n<h3>3.0.13<\/h3>\n\n<ul>\n<li>Bug: Bug fix fusion framework integration with opengraph and cdn causing crash<\/li>\n<li>Compatibility: Force override html minification outside admin to ensure it does not process before plugin html minification runs. This is prep for a sister CSS plugin update<\/li>\n<\/ul>\n\n<h3>3.0.12<\/h3>\n\n<ul>\n<li>Compatibility: Add support for use proof to be optimized<\/li>\n<li>Compatibility: Add support for convert kit to be optimized<\/li>\n<li>Compatibility: Add compatibility with thrive theme framework to ensure the logo's are processed for CDN replacements<\/li>\n<li>Compatibility: Add compatibility with thrive leads to ensure that shortcodes get processed for CDN replacements<\/li>\n<li>Compatibility: Add elementor ultimate addons compatibility for the gallery element and before\/after slider<\/li>\n<li>Compatibility: Add elementor compatibility for the tab element<\/li>\n<li>Compatibility: Add CDN\/device icon compatibility with avada\/fusion framework<\/li>\n<\/ul>\n\n<h3>3.0.11<\/h3>\n\n<ul>\n<li>Bug: Inline tag encoding processed empty tags and outputted garbled data that caused JS errors. Empty tags are no longer encoded<\/li>\n<\/ul>\n\n<h3>3.0.10<\/h3>\n\n<ul>\n<li>Bug: Always encrypt scripts if there is content to prevent processing edge cases<\/li>\n<li>Bug: Remove found script in rewrite modules and inject remaining code as a new script to get re-processed to ensure nothing gets silently deleted<\/li>\n<li>Bug: Handle case where CDN domain may be just a domain and not a url<\/li>\n<li>Integration: Add CookieBot rewrite module<\/li>\n<li>Integration: Add CallRail rewrite module to skip processing<\/li>\n<li>Enhancement: Prevent any mediaelement embeds from auto starting for lazy loads<\/li>\n<li>Compatibility: Add integration with fusion framework to handle the privacy feature for lazy load compatibility<\/li>\n<li>Compatibility: Put autoplay in allow attribute due to chrome video changes<\/li>\n<li>Compatibility: Add compatibility with wp-rocket 3.1 due to JS minify class change<\/li>\n<\/ul>\n\n<h3>3.0.9<\/h3>\n\n<ul>\n<li>Bug: jQuery wrap appears to set the style attribute and not with and height so work around it<\/li>\n<li>Bug: Use maybe_unserialize in revolution slider integration module for forcing javascript options<\/li>\n<li>Bug: Set iframes with lazyloaded-video class to max width of 100% to prevent overflowing in video<\/li>\n<li>Feature: Add function to enable using a class video-size-linked-to-VIDEOID on a video iframe to force it to use the size of another video via jQuery in edge cases where the image sizes don't match<\/li>\n<li>Enhancement: Disable a3 lazy load if enabled but we are logged in and not caching logged in users, but allow filter <code>rocket_footer_js_lazy_load_members_override<\/code> to override<\/li>\n<li>Enhancement: Add css class lazyloaded-video to processed videos to be styled<\/li>\n<li>Compatibility: Add compatibility with theme fusion avada\/fusion builder<\/li>\n<li>Compatibility: Add compatibility with fusion builder\/visual composer combination to convert css class to data-attribute  for video size linking<\/li>\n<li>Compatibility: Add further CSS compatibility with Visual Composer<\/li>\n<li>Compatibility: Re-render fusion carousel when any of its images are lazy loaded<\/li>\n<li>Compatibility: Add compatibility CSS with visual composer to override margins<\/li>\n<\/ul>\n\n<h3>3.0.8<\/h3>\n\n<ul>\n<li>Don't use PHP_INT_MAX on rocket_buffer<\/li>\n<\/ul>\n\n<h3>3.0.7<\/h3>\n\n<ul>\n<li>Bug: Don't process background images if lazy load is not enabled<\/li>\n<li>Bug: Add workaround to force divi parallax's to re-render on lazyload\nas well as the default all<\/li>\n<li>Integration: Add genesis framework integration<\/li>\n<li>Enhancement: Ensure get_rocket_cdn_url uses all css\/js zones<\/li>\n<li>Enhancement: Better handling of video lazy load placeholder size and support p tags<\/li>\n<li>Compatibility: Add rewrite module to Prevent Stripe.js from being minified as they don't allow it<\/li>\n<li>Compatibility: Add magiczoom compatibility with lazy load<\/li>\n<li>Compatibility: Add MemberPress integration to force bundled zxcvbn script to be CDN'ified<\/li>\n<li><p>Compatibility: Add compatibility with AddThis script to exclude script since it doesn't function minified<\/p>\n\n<h3>3.0.6<\/h3><\/li>\n<li><p>Enable autoplay on lazy load videos<\/p><\/li>\n<li>Add loading spinner CSS for lazy load videos<\/li>\n<\/ul>\n\n<h3>3.0.5<\/h3>\n\n<ul>\n<li>Add fb-like-box class to list of facebook widgets to lazyload<\/li>\n<li>Don't check libxml version on body fix<\/li>\n<li>Exclude Shareaholic JS from minify<\/li>\n<\/ul>\n\n<h3>3.0.4<\/h3>\n\n<ul>\n<li>Update framework<\/li>\n<\/ul>\n\n<h3>3.0.3<\/h3>\n\n<ul>\n<li>Remove accidental global font override<\/li>\n<li>Remove bad lazy loading default that could interfere with minify<\/li>\n<\/ul>\n\n<h3>3.0.2<\/h3>\n\n<ul>\n<li>Fix Bugs in Video lazy loading<\/li>\n<li>Prevent crash from undefined is_plugin_active in some situations<\/li>\n<li>Skip lazy load iframe if is in a noscript<\/li>\n<\/ul>\n\n<h3>3.0.1<\/h3>\n\n<ul>\n<li>Fix Bug in Google Plus lazy loading<\/li>\n<\/ul>\n\n<h3>3.0.0<\/h3>\n\n<p>This is considered  a <strong><em>MAJOR<\/em><\/strong> release due to the amount of effort that has been invested since the last release in 2017<\/p>\n\n<ul>\n<li>BUGS!: Too many bug fixes to give out in detail. It would be ideal to review git commits in this case<\/li>\n<li>Feature: Add lazyloading for CSS background images<\/li>\n<li>Feature: Add lazy load for google full page ads<\/li>\n<li>Feature: Add Big Bat support<\/li>\n<li>Feature: Add rewrite support for Klaviyo Analytics<\/li>\n<li>Feature: Add rewrite support for Youtube embed\/iframe API<\/li>\n<li>Integration: Add integration with Wonder Plugin Carousel<\/li>\n<li>Integration: Add integration with Smart Slider 3<\/li>\n<li>Integration: Add integration with Qocode Theme Framework<\/li>\n<li>Integration: Add integration with MetaSlider<\/li>\n<li>Integration: Add integration with Google Maps Widget Pro<\/li>\n<li>Integration: Add integration with Divi Popup Builder<\/li>\n<li>Integration: Add integration with Bridge Theme<\/li>\n<li>Integration: Add Audio integration to properly handle HTML 5 audio<\/li>\n<li>Integration: Add a3 lazy load integration to ensure CDN is used for all content<\/li>\n<li>Integration: Add integration with Gravity Forms<\/li>\n<li>Integration: Add Lazyload support for Qode Framework google maps<\/li>\n<li>Integration: Add integration with Divi Builder<\/li>\n<li>Integration: Add integration with BNE flyout<\/li>\n<li>Integration: Add integration with WPEX theme framework<\/li>\n<li>Integration: Add integration with PressCore Theme framework<\/li>\n<li>Enhancement\/Bug: Bundle a patched and updated a3 lazy Load lazyload XT library version<\/li>\n<li>Enhancement: Automatically download the most high resolution youtube thumbnail<\/li>\n<li>Enhancement: Ensure lazy load supports iframes with new script<\/li>\n<li>Compatibility: Add compatibility with Visual Composer<\/li>\n<li>Compatibility: Add revslider lazy load compatibility<\/li>\n<li>Compatibility: Add woocommerce integration to disable many cache hooks to reduce problems<\/li>\n<li>Compatibility: Add Divi LazyLoad compatibility<\/li>\n<li>Compatibility: Disable lazy load if divi frontend pagebuilder is running<\/li>\n<li>Compatibility: Add workaround technique for processing inline javascript that has html<\/li>\n<li>Deprecated: Remove google tag manager minify since it causes problems<\/li>\n<\/ul>\n\n<h3>2.0.0<\/h3>\n\n<p>This is a <strong><em>MAJOR<\/em><\/strong> release and over 50% of the code is rewritten. While it has been extensively tested, there may still be bugs! Please test in a development site before deploying! Due to the amount of work, only a summary of this version will be detailed below.<\/p>\n\n<ul>\n<li><strong><em>Major<\/em><\/strong> rewrite using new composer based framework.<\/li>\n<li>Feature: Add McAfee Secure integration<\/li>\n<li>Feature: Add Revolution Slider integration<\/li>\n<li>Feature: Add video embed lazyload and download thumnails locally<\/li>\n<li>Feature: Add Pin Interest lazyLoad<\/li>\n<li>Feature: Add Blog Her Ads lazyload<\/li>\n<li>Feature: Hijack JS document.write to enable 3rd party scripts to inject html safely<\/li>\n<li>Feature: Add Hub Spot rewriting<\/li>\n<li>Feature: Add Pindom Prum rewrite<\/li>\n<\/ul>\n\n<h3>1.4.6<\/h3>\n\n<ul>\n<li>Strip returns in rocket_footer_js_rewrite_js_loaders<\/li>\n<li>Improve Google Analytics to conditionally handle ssl<\/li>\n<li>Bug fix hanging of Facebook Pixel fbq calls<\/li>\n<li>Add Pushcrew Tracking<\/li>\n<li>Ensure Facebook SDK is only loaded 1 time<\/li>\n<li>Refactor Google Plus to use simpler xpath queries and set a dummy pixel image to emsure it is picked up by lazy load<\/li>\n<li>Add support for Google Plus loaded via JS<\/li>\n<li>Improve twitter regex<\/li>\n<li>Add Tumbler support<\/li>\n<li>Improve Google Adsense support and skip ads where there is no ins tag as this is likely a full page or alternate ad<\/li>\n<li>Add Amazon Ads support<\/li>\n<li>Add Stumble Upon support<\/li>\n<li>Add VK.com support<\/li>\n<li>For Google Adsense, Amazon Ads, and Google Plus, if lazy load is off and the scripts are normal tags, flag to not minify so the scripts are not broken<\/li>\n<li>Add support for WooCommerce Social Media Share Buttons plugin<\/li>\n<li>Use WP_DEBUG_LOG over WP_DEBUG in rocket_footer_js_debug_enabled<\/li>\n<li>Fix logic in rocket_footer_js_debug_enabled that may cause debug to be on by mistake<\/li>\n<\/ul>\n\n<h3>1.4.5<\/h3>\n\n<ul>\n<li>Improve facebook pixel support to prevent possible runtime errors<\/li>\n<\/ul>\n\n<h3>1.4.4<\/h3>\n\n<ul>\n<li>Add support for Avvo.com tracking<\/li>\n<li>Ensure zxcvbn password meter is not changed on login and signup pages<\/li>\n<\/ul>\n\n<h3>1.4.3<\/h3>\n\n<ul>\n<li>Update Page Links To compatibility<\/li>\n<\/ul>\n\n<h3>1.4.2<\/h3>\n\n<ul>\n<li>Improve UTF-8 character handling<\/li>\n<li>Add support for googleanalytics plugin<\/li>\n<li>Improve GA regex<\/li>\n<li>Add compatibility with N2Extend framework<\/li>\n<\/ul>\n\n<h3>1.4.1<\/h3>\n\n<ul>\n<li>Add support for Sumo Me<\/li>\n<\/ul>\n\n<h3>1.4.0<\/h3>\n\n<ul>\n<li>Improve multi-line comment regex<\/li>\n<li>Rebuild cache system without using SQL<\/li>\n<\/ul>\n\n<h3>1.3.9<\/h3>\n\n<ul>\n<li>Extract and minify GA calls<\/li>\n<\/ul>\n\n<h3>1.3.8<\/h3>\n\n<ul>\n<li>Remove comments from js since JSMin doesn't do it by using a new function rocket_footer_js_minify<\/li>\n<li>Run rocket_footer_js_process_remote_script and rocket_footer_js_process_local_script when using cached data as well<\/li>\n<li>If rocket_footer_js_process_remote_script\/rocket_footer_js_process_local_script return a modified script, then use the original in the cache but minified so it gets processed again properly the next request<\/li>\n<li>Inline scripts were not getting cached<\/li>\n<li>Removed duplicate minify call for remote scripts<\/li>\n<li>Cache the tawk.to script<\/li>\n<li>Fix tawk.to minify call<\/li>\n<\/ul>\n\n<h3>1.3.7<\/h3>\n\n<ul>\n<li>Ensure home uses the active URL scheme<\/li>\n<li>Pass $tags_ref to rocket_footer_js_process_local_script not $tags<\/li>\n<li>Change rocket_footer_js_process_local_script signature to use $tags by reference<\/li>\n<li>Add support for Facebook Pixel<\/li>\n<li>Add support for Pixel Your Site plugin since it stores the pixel code in its own script<\/li>\n<li>Add support for Google Web Fonts JS loader<\/li>\n<\/ul>\n\n<h3>1.3.6<\/h3>\n\n<ul>\n<li>Automatically lazy load iframes if they are not lazy loaded already<\/li>\n<\/ul>\n\n<h3>1.3.5<\/h3>\n\n<ul>\n<li>Ensure async attribute is compatible with XHTML<\/li>\n<\/ul>\n\n<h3>1.3.4<\/h3>\n\n<ul>\n<li>Ensure lazy load comments don't get stripped by html minify by using tag markers and doing a regex replacement after minification<\/li>\n<li>Improve Twitter regex to support another variation<\/li>\n<li>Improve Facebook regex to support another variation<\/li>\n<li>Add support for DoubleClick GA<\/li>\n<li>Add support for Google Adsense lazy loading<\/li>\n<\/ul>\n\n<h3>1.3.3<\/h3>\n\n<ul>\n<li>Add compatibility hack for older libxml<\/li>\n<li>Skip text\/html scripts<\/li>\n<\/ul>\n\n<h3>1.3.2<\/h3>\n\n<ul>\n<li>Treat google maps as loading async with a typeof timer and load infobox async if it exists<\/li>\n<li>Check document.readyState to run map function in case the window load event already ran<\/li>\n<\/ul>\n\n<h3>1.3.1<\/h3>\n\n<ul>\n<li>Move debug code to rocket_footer_js_debug_enabled function<\/li>\n<li>Move web fetch code to rocket_footer_js_remote_fetch function<\/li>\n<li>Use rocket_add_url_protocol in rocket_footer_js_rewrite_js_loaders<\/li>\n<\/ul>\n\n<h3>1.3.0<\/h3>\n\n<ul>\n<li>Auto optimize Tawk.to, WP Rockets lazyload, and google analytics to use normal tags instead of javascript loaders so they can get minified<\/li>\n<li>If minify is enabled due to LazyLoadXT or A3_Lazy_Load support, then lazy load facebook, twitter, google plus widgets, and avada google maps (if Avada_GoogleMap exists and google maps is on)<\/li>\n<li>Enqueue LazyLoadXT widget extension if lazyload is enabled since lazy load plugins don't supply it<\/li>\n<li>Improve lazy load regex patterns<\/li>\n<li>Split minify to rocket_footer_js_process_remote_script and rocket_footer_js_process_locate_script functions with associated filters to hook into<\/li>\n<li>Minify emojione in tawk.to JS<\/li>\n<li>Add hook rocket_footer_js_rewrite_js_loaders to allow pre-processing before minification<\/li>\n<li>Add support for avada google maps lazy loading<\/li>\n<li>Remove duplicate google maps API scripts and prioritize the first one that has an API key<\/li>\n<li>Only lazy load google maps if there is any script content<\/li>\n<li>Added function rocket_footer_js_lazyload_script to reduce code duplication<\/li>\n<\/ul>\n\n<h3>1.2.3<\/h3>\n\n<ul>\n<li>Ensure url scheme is set correctly when converting from a CDN domain<\/li>\n<\/ul>\n\n<h3>1.2.2<\/h3>\n\n<ul>\n<li>Disable minify on AMP pages<\/li>\n<\/ul>\n\n<h3>1.2.1<\/h3>\n\n<ul>\n<li>Tested on WordPress 4.7<\/li>\n<li>Ensure PHP 5.3 compatibility<\/li>\n<\/ul>\n\n<h3>1.2.0<\/h3>\n\n<ul>\n<li>Correct\/improve relative URL logic<\/li>\n<li>Prevent html from being minified before JS to prevent issues with detection<\/li>\n<li>Add new minify cache system to reduce computation time required to minify a page<\/li>\n<\/ul>\n\n<p><strong>Notice: This new cache system could cause unknown issues. While it has been tested, not every situation can be accounted for. Contact me if you hit a problem.<\/strong><\/p>\n\n<p><strong>Notice: Cache is stored in transients, so only a normal wp-rocket purge will clear everything<\/strong><\/p>\n\n<h3>1.1.16<\/h3>\n\n<ul>\n<li>Fix logic bug in data-no-minify check<\/li>\n<\/ul>\n\n<h3>1.1.15<\/h3>\n\n<ul>\n<li>Check for relative URL's<\/li>\n<li>Add compatibility support for \"Page Links To\" since it does naughty things with buffering<\/li>\n<\/ul>\n\n<h3>1.1.14<\/h3>\n\n<ul>\n<li>Bugfix fetching JS from filesystem with http\\Url<\/li>\n<li>Add a newline into the automatic semicolon insertion for the case that the last text is a comment<\/li>\n<\/ul>\n\n<h3>1.1.13<\/h3>\n\n<ul>\n<li>Ensure zxcvbn is loaded normally and not async<\/li>\n<\/ul>\n\n<h3>1.1.12<\/h3>\n\n<ul>\n<li>Exclude js template script tags<\/li>\n<\/ul>\n\n<h3>1.1.11<\/h3>\n\n<ul>\n<li>Check for sourcemaps and add a new line to prevent syntax errors<\/li>\n<\/ul>\n\n<h3>1.1.10<\/h3>\n\n<ul>\n<li>Check for off in display_errors<\/li>\n<\/ul>\n\n<h3>1.1.9<\/h3>\n\n<ul>\n<li>Catch errors if WP_Error is returned or status code is not 200 or 304 or its empty<\/li>\n<li>Log errors if debug mode is enabled or PHP display_errors is enabled<\/li>\n<li>Disable minify when debug is on regardless of settings<\/li>\n<li>Log processed scripts in debug mode<\/li>\n<li>Move query string check to only run for local files<\/li>\n<\/ul>\n\n<h3>1.1.8<\/h3>\n\n<ul>\n<li>Web fetch dynamic scripts being defined as not having a JS extension<\/li>\n<li>Add regex to remove broken conditional comments out of inline js<\/li>\n<\/ul>\n\n<h3>1.1.7<\/h3>\n\n<ul>\n<li>Add constant DONOTMINIFYJS and function is_rocket_post_excluded_option to minify status check<\/li>\n<\/ul>\n\n<h3>1.1.6<\/h3>\n\n<ul>\n<li>If file is external, we do not want to treat the response as a filesystem path<\/li>\n<li>Always set the url domain back to home_url() because it will need to be that even if the original is a CDN or not<\/li>\n<\/ul>\n\n<h3>1.1.5<\/h3>\n\n<ul>\n<li>Use home URL and ABSPATH for the site root and not assume everything is in wp-content<\/li>\n<\/ul>\n\n<h3>1.1.4<\/h3>\n\n<ul>\n<li>Use a http_build_url shim as a fallback instead of deactivating with an error<\/li>\n<\/ul>\n\n<h3>1.1.3<\/h3>\n\n<ul>\n<li>Set main script tag to async<\/li>\n<\/ul>\n\n<h3>1.1.2<\/h3>\n\n<ul>\n<li>Minified wrong JS buffer for inline JS<\/li>\n<li>Don't prepend semicolon since its already conditionally prepended for inline JS<\/li>\n<\/ul>\n\n<h3>1.1.1<\/h3>\n\n<ul>\n<li>Add detection for PHP HTTP PECL extension<\/li>\n<li>Update code commentation and PHPDoc blocks<\/li>\n<\/ul>\n\n<h3>1.1.0<\/h3>\n\n<ul>\n<li>Changed logic to disable minify setting on front end and combine all scripts + minify if option is set (excluding localized scripts) to a new file in minify cache folder. File name will have user ID if logged in to be unique.<\/li>\n<li>Keep application\/ld+json in the header<\/li>\n<\/ul>\n\n<h3>1.0.2<\/h3>\n\n<ul>\n<li>Exclude JS extension from slug name and ensure remote file is saved with a JS extension<\/li>\n<\/ul>\n\n<h3>1.0.1<\/h3>\n\n<ul>\n<li>Check for CDN files in remote tags and convert back to a local filename for minification<\/li>\n<li>Do variable cleanup<\/li>\n<\/ul>\n\n<h3>1.0.0<\/h3>\n\n<ul>\n<li>Initial version<\/li>\n<\/ul>","raw_excerpt":"WordPress plugin to do a better job with your scripts and improve lazy loading. Depends on WP-Rocket\n\nThis is NOT an official addon to WP-Rocket!","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/sa.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/49742","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sa.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/sa.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/sa.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=49742"}],"author":[{"embeddable":true,"href":"https:\/\/sa.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/pcfreak30"}],"wp:attachment":[{"href":"https:\/\/sa.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=49742"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/sa.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=49742"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/sa.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=49742"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/sa.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=49742"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/sa.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=49742"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/sa.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=49742"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}