/** * Disables jetpack infinite scroll on product pages * * @param boolean $return * @return boolean */ function ic_jetpack_infinite_scroll_disable($return) { if (is_ic_product_listing() || is_ic_taxonomy_page()) { return false; } return $return; }
function is_ic_catalog_page() { if (is_ic_product_page() || is_ic_product_listing() || is_ic_taxonomy_page()) { return true; } return false; }
function widget($args, $instance) { if (get_integration_type() != 'simple' && (is_ic_taxonomy_page() || is_ic_product_listing())) { $title = apply_filters('widget_title', empty($instance['title']) ? '' : $instance['title'], $instance, $this->id_base); $taxonomy = get_current_screen_tax(); if (is_ic_taxonomy_page() && !is_product_filter_active('product_category')) { $categories = get_terms($taxonomy, array('parent' => get_queried_object()->term_id)); } else { $categories = get_terms($taxonomy, array('parent' => 0)); } $form = ''; $child_form = ''; foreach ($categories as $category) { $form .= get_product_category_filter_element($category); } $class = 'product-category-filter-container'; if (is_product_filter_active('product_category')) { $class .= ' filter-active'; $filter_value = get_product_filter_value('product_category'); $children = get_terms($taxonomy, array('parent' => $filter_value)); //if ( !is_ic_taxonomy_page() ) { $parent_term = get_term_by('id', $filter_value, $taxonomy); if (!empty($parent_term->parent)) { $form .= get_product_category_filter_element($parent_term); } //} if (is_array($children)) { foreach ($children as $child) { $child_form .= get_product_category_filter_element($child); } } } if (!empty($form) || !empty($child_form)) { echo $args['before_widget']; if ($title) { echo $args['before_title'] . $title . $args['after_title']; } echo '<div class="' . $class . '">'; echo $form; if (!empty($child_form)) { echo '<div class="child-category-filters">' . $child_form . '</div>'; } echo '</div>'; echo $args['after_widget']; } } }
/** * Adds products post type navigation class for automatic main menu * * @global type $post * @param string $classes * @param type $page * @return string */ function product_listing_page_nav_class($classes, $page) { global $post; if (isset($post->ID) && is_ic_product_listing()) { if ($page->ID == get_product_listing_id()) { $current_post_type = get_post_type_object(get_post_type($post->ID)); $current_post_type_slug = $current_post_type->rewrite['slug']; $menu_slug = $page->post_name; if ($menu_slug == $current_post_type_slug) { $classes[] = 'current_page_item'; } } else { if (($key = array_search('current-menu-item', $classes)) !== false) { unset($classes[$key]); } if (($key = array_search('current_page_parent', $classes)) !== false) { unset($classes[$key]); } } } else { if (isset($post->ID) && (is_ic_product_page() || is_ic_taxonomy_page())) { if (($key = array_search('current-menu-item', $classes)) !== false) { unset($classes[$key]); } if (($key = array_search('current_page_parent', $classes)) !== false) { unset($classes[$key]); } } } return $classes; }
/** * Applies current filters to the query * * @param object $query */ function apply_product_filters($query) { if (!is_admin() && !is_home_archive($query) && $query->is_main_query() && is_product_filters_active() && (is_ic_product_listing($query) || is_ic_taxonomy_page())) { if (is_product_filter_active('product_category')) { $category_id = get_product_filter_value('product_category'); $taxonomy = get_current_screen_tax(); $taxquery = array(array('taxonomy' => $taxonomy, 'terms' => $category_id)); $query->set('tax_query', $taxquery); } if (is_product_filter_active('min-price') || is_product_filter_active('max-price')) { $metaquery = array(); $min_price = get_product_filter_value('min-price'); if (!empty($min_price)) { $metaquery[] = array('key' => '_price', 'compare' => '>=', 'value' => $min_price, 'type' => 'NUMERIC'); } $max_price = get_product_filter_value('max-price'); if (!empty($max_price)) { $metaquery[] = array('key' => '_price', 'compare' => '<=', 'value' => $max_price, 'type' => 'NUMERIC'); } $query->set('meta_query', $metaquery); } do_action('apply_product_filters', $query); } }
/** * Checks if only categories should be showed * @return boolean */ function is_ic_only_main_cats() { $multiple_settings = get_multiple_settings(); if (is_ic_product_listing() && $multiple_settings['product_listing_cats'] == 'cats_only') { return true; } else { if (is_ic_taxonomy_page() && $multiple_settings['category_top_cats'] == 'only_subcategories') { return true; } else { return false; } } }
/** * Sets default product order * * @param object $query */ function set_product_order($query) { if (!is_admin() && !isset($_GET['order']) && $query->is_main_query() && (is_ic_product_listing($query) || is_ic_taxonomy_page())) { $archive_multiple_settings = get_multiple_settings(); if (!isset($_GET['product_order'])) { if ($archive_multiple_settings['product_order'] == 'product-name') { $query->set('orderby', 'title'); $query->set('order', 'ASC'); } $query = apply_filters('modify_product_order', $query, $archive_multiple_settings); } else { if ($_GET['product_order'] != 'newest' && !empty($_GET['product_order'])) { $orderby = translate_product_order(); $query->set('orderby', $orderby); $query->set('order', 'ASC'); $query = apply_filters('modify_product_order-dropdown', $query, $archive_multiple_settings); } } } }
function override_product_page_title($page_title, $id = null) { if (!is_admin() && is_ic_catalog_page() && !is_ic_product_page() && !in_the_loop() && (empty($id) || get_quasi_post_type(get_post_type($id)) == 'al_product')) { $archive_names = get_archive_names(); if (is_ic_taxonomy_page()) { $the_tax = get_term_by('slug', get_query_var('term'), get_query_var('taxonomy')); $page_title = $archive_names['all_prefix'] . ' ' . $the_tax->name; } else { if (is_search()) { $page_title = __('Search Results for:', 'al-ecommerce-product-catalog') . ' ' . $_GET['s']; } else { if (is_ic_product_listing()) { $page_title = get_product_listing_title(); } } } } return $page_title; }
function widget($args, $instance) { if (get_integration_type() != 'simple') { if (!empty($instance['shortcode_support']) && has_show_products_shortcode() || (is_ic_taxonomy_page() || is_ic_product_listing())) { $title = apply_filters('widget_title', empty($instance['title']) ? '' : $instance['title'], $instance, $this->id_base); echo $args['before_widget']; if ($title) { echo $args['before_title'] . $title . $args['after_title']; } // Use current theme search form if it exists show_product_order_dropdown(null, null, $instance); echo $args['after_widget']; } } }