/**
 * 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;
}
Exemple #3
0
 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'];
         }
     }
 }
Exemple #4
0
/**
 * 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;
}
Exemple #5
0
/**
 * 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;
        }
    }
}
Exemple #7
0
/**
 * Returns current product category name
 */
function product_category_name()
{
    //$the_tax = get_term_by( 'slug', get_query_var( 'term' ), get_query_var( 'taxonomy' ) );
    $the_tax = get_queried_object();
    $name = '';
    if (is_ic_taxonomy_page()) {
        $name = $the_tax->name;
    }
    return $name;
}
/**
 * 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'];
         }
     }
 }
Exemple #11
0
function product_breadcrumbs()
{
    if (get_integration_type() != 'simple') {
        global $post;
        $post_type = get_post_type();
        $home_page = get_home_url();
        if (function_exists('additional_product_listing_url') and $post_type != 'al_product') {
            $catalog_id = catalog_id($post_type);
            $product_archives = additional_product_listing_url();
            $product_archive = $product_archives[$catalog_id];
            $archives_ids = get_option('additional_product_archive_id');
            $breadcrumbs_options = get_option('product_breadcrumbs', unserialize(DEFAULT_PRODUCT_BREADCRUMBS));
            if (empty($breadcrumbs_options['enable_product_breadcrumbs'][$catalog_id]) || !empty($breadcrumbs_options['enable_product_breadcrumbs'][$catalog_id]) && $breadcrumbs_options['enable_product_breadcrumbs'][$catalog_id] != 1) {
                return;
            }
            $product_archive_title_options = $breadcrumbs_options['breadcrumbs_title'][$catalog_id];
            if ($product_archive_title_options != '') {
                $product_archive_title = $product_archive_title_options;
            } else {
                $product_archive_title = get_the_title($archives_ids[$catalog_id]);
            }
        } else {
            $archive_multiple_settings = get_multiple_settings();
            if (empty($archive_multiple_settings['enable_product_breadcrumbs']) || !empty($archive_multiple_settings['enable_product_breadcrumbs']) && $archive_multiple_settings['enable_product_breadcrumbs'] != 1) {
                return;
            }
            $product_archive = product_listing_url();
            if ($archive_multiple_settings['breadcrumbs_title'] != '') {
                $product_archive_title = $archive_multiple_settings['breadcrumbs_title'];
            } else {
                $product_archive_title = get_product_listing_title();
            }
        }
        $current_product = get_the_title($post->ID);
        if (is_ic_product_page()) {
            return '<p id="breadcrumbs">
<span xmlns:v="http://rdf.data-vocabulary.org/#">
	<span typeof="v:Breadcrumb">
		<a href="' . $home_page . '" rel="v:url" property="v:title">' . __('Home', 'al-ecommerce-product-catalog') . '</a>
	</span> » 
	<span typeof="v:Breadcrumb">
		<a href="' . $product_archive . '" rel="v:url" property="v:title">' . $product_archive_title . '</a>
	</span> » 
	<span typeof="v:Breadcrumb">
		<span class="breadcrumb_last" property="v:title">' . $current_product . '</span>
	</span>
</span>
</p>';
        } else {
            if (is_ic_taxonomy_page()) {
                return '<p id="breadcrumbs">
<span xmlns:v="http://rdf.data-vocabulary.org/#">
	<span typeof="v:Breadcrumb">
		<a href="' . $home_page . '" rel="v:url" property="v:title">' . __('Home', 'al-ecommerce-product-catalog') . '</a>
	</span> »
	<span typeof="v:Breadcrumb">
		<a href="' . $product_archive . '" rel="v:url" property="v:title">' . $product_archive_title . '</a>
	</span> »
	<span typeof="v:Breadcrumb">
		<span class="breadcrumb_last" property="v:title">' . $current_product . '</span>
	</span>
</span>
</p>';
            } else {
                return '<p id="breadcrumbs">
<span xmlns:v="http://rdf.data-vocabulary.org/#">
	<span typeof="v:Breadcrumb">
		<a href="' . $home_page . '" rel="v:url" property="v:title">' . __('Home', 'al-ecommerce-product-catalog') . '</a>
	</span> » 
	<span typeof="v:Breadcrumb">
		<span class="breadcrumb_last" property="v:title">' . $product_archive_title . '</span>
	</span>
</span>
</p>';
            }
        }
    }
}