Forum Replies Created

Viewing 6 replies - 1 through 6 (of 6 total)
  • hitkodev

    (@hitkodev)

    @djeah Content encoding br means your server supports Brotli compression, which is a more recent alternative to gzip compression.

    https://hacks.mozilla.org/2015/11/better-than-gzip-compression-with-brotli/

    Thread Starter hitkodev

    (@hitkodev)

    I believe it should be plenty obvious from the code. Let’s go step by step through the affected code, shall we?

    
            $storage['exclude_url'] = array_merge(
    			$ecommerce_exclude_urls,
    			! empty( $config['breeze-exclude-urls'] ) ? $config['breeze-exclude-urls'] : array()
    		);
    

    This part merges $ecommerce_exclude_urls and exclude urls from config and stores them to $storage['exclude_url']. So far so good, your code works. Next code:

    
    $saved_pages = get_option( 'breeze_exclude_url_pages', array() );
    
    	    if ( ! empty( $saved_pages ) ) {
    		    $saved_pages_urls = array();
    		    foreach ( $saved_pages as $page_id ) {
    			    $saved_pages_urls[] = get_permalink( $page_id );
    		    }
    
    		    $saved_pages_urls = array_unique( $saved_pages_urls );
    
    		    $storage['exclude_url'] = array_merge(
    			    $saved_pages_urls,
    			    ! empty( $config['breeze-exclude-urls'] ) ? $config['breeze-exclude-urls'] : array()
    		    );
    	    }

    Now if you look what this does is if $saved_pages option is set, it merges $saved_pages_urls and exclude urls form the config, and stores them to $storage['exclude_url']. Now tell me, what happened to $ecommerce_exclude_urls which were added to $storage['exclude_url'] in the previous step? They just got overridden by $saved_pages_urls. But what’s this? More code?

    
    if( class_exists('WC_Facebook_Loader')){
    		    $woocommerce_fb_feed_link = Breeze_Ecommerce_Cache::factory()->wc_facebook_feed();
    
    		    if(!empty($woocommerce_fb_feed_link)){
    			    $storage['exclude_url'] = array_merge(
    				    $woocommerce_fb_feed_link,
    				    ! empty( $config['breeze-exclude-urls'] ) ? $config['breeze-exclude-urls'] : array()
    			    );
    		    }
    	    }
    

    See the pattern? Now if WC_Facebook_Loader is active, we again override any saved or ecommerce urls from the previous step. Amazing.

    • This reply was modified 4 years ago by hitkodev.
    Thread Starter hitkodev

    (@hitkodev)

    Here’s a fixed version: https://pastebin.com/5qMrT3KW

    Thread Starter hitkodev

    (@hitkodev)

    The first issue seems to be fixed, but it still doesn’t properly cache multisite.

    Thread Starter hitkodev

    (@hitkodev)

    Another fine bug (this time on multisite): $blog_id defaults to 1, and only resolves AFTER Breeze tries to serve cached content. Since Breeze prepends $blog_id to cache path, it tries to read from cache/breeze/1/..., but writes to cache/breeze/[resolved blog id]/..., which obviously doesn’t match.

    Thread Starter hitkodev

    (@hitkodev)

    Everywhere, just look at the damn code, like, say, line 214 in execute-cache.php which was not updated with the new logic, and appends guest without ? or & prefix. Alternatively, here’s the refactored code, so you won’t have to worry about updating copy-pasted code all over the place: https://pastebin.com/x9dEDKhc

Viewing 6 replies - 1 through 6 (of 6 total)