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 3 years, 8 months ago by hitkodev.