Banners::get_context_banners()
Summary
Get banners for the current contenxt
Return
(array)
Source
File: src/BigCommerce/Banners/Banners.php
public function get_context_banners() { $enable_banners = get_option( Banners_Settings::ENABLE_BANNERS, false ) === 'yes'; if ( ! $enable_banners ) { return []; } $banners = $this->get_banners(); $page = $this->get_current_page(); $current_date = time(); $queried_object = get_queried_object(); $bc_id = 0; if ( is_a( $queried_object, 'WP_Term' ) && in_array( $page, [ self::PAGE_CATEGORY, self::PAGE_BRAND ]) ) { $bc_id = (int) get_term_meta( $queried_object->term_id, 'bigcommerce_id', true ); } $banners = array_filter( $banners, function( $banner ) use ( $page, $current_date, $bc_id ) { if ( ! $banner['visible'] || $banner['page'] !== $page ) { return false; } if ( $bc_id && $banner['item_id'] !== $bc_id ) { return false; } if ( $banner['date_type'] === self::DATE_TYPE_CUSTOM ) { $in_range = $current_date >= $banner['date_from'] && $current_date <= $banner['date_to']; if ( ! $in_range ) { return false; } } return true; } ); return array_values( $banners ); // reset keys }