/** * Manages product conditional functions * * Here all plugin conditional functions are defined and managed. * * @version 1.0.0 * @package ecommerce-product-catalog/functions * @author Norbert Dreszer */ function is_ic_catalog_page() { if (is_ic_product_page() || is_ic_product_listing() || is_ic_taxonomy_page() || is_ic_product_search()) { return true; } return false; }
function widget($args, $instance) { if (is_ic_product_page()) { $title = apply_filters('widget_title', empty($instance['title']) ? '' : $instance['title'], $instance, $this->id_base); $related = get_related_products(); if (!empty($related)) { echo $args['before_widget']; if ($title) { echo $args['before_title'] . $title . $args['after_title']; } // Use current theme search form if it exists echo $related; echo $args['after_widget']; } } }
function product_page_content($content) { if (is_main_query() && in_the_loop() && is_ic_product_page() && get_integration_type() == 'simple') { ob_start(); content_product_adder(); $content = ob_get_contents(); ob_end_clean(); } return $content; }
/** * 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; }
function product_breadcrumbs() { if (get_integration_type() != 'simple' && !is_front_page()) { global $post; $post_type = get_post_type(); $home_page = get_home_url(); if (function_exists('additional_product_listing_url') && $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(); } } $additional = ''; if (is_ic_product_page()) { $current_product = get_the_title(); } else { if (is_ic_taxonomy_page()) { $obj = get_queried_object(); $current_product = $obj->name; $taxonomy = isset($obj->taxonomy) ? $obj->taxonomy : 'al_product-cat'; $current_category_id = $obj->term_id; $parents = array_filter(explode('|', ic_get_product_category_parents($current_category_id, $taxonomy, true, '|'))); array_pop($parents); foreach ($parents as $parent) { if (!empty($parent)) { $additional .= ' » <span typeof="v:Breadcrumb"> <span class="breadcrumb_last" property="v:title">' . $parent . '</span> </span>'; } } } else { if (is_search()) { $current_product = __('Product Search', 'ecommerce-product-catalog'); } else { $current_product = ''; } } } $bread = '<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', 'ecommerce-product-catalog') . '</a></span>'; if (!empty($product_archive)) { $bread .= ' » <span typeof="v:Breadcrumb"><a href="' . $product_archive . '" rel="v:url" property="v:title">' . $product_archive_title . '</a></span>'; } if (!empty($additional)) { $bread .= $additional; } if (!empty($current_product)) { $bread .= ' » <span typeof="v:Breadcrumb"><span class="breadcrumb_last" property="v:title">' . $current_product . '</span></span></span>'; } $bread .= '</p>'; return $bread; } }
/** * Replaces the product page image HTML with the default * * @global type $product_page_image_html * @param type $html * @return \type */ function product_page_image_html($html) { if (is_ic_product_page()) { global $product_page_image_html; return $product_page_image_html; } return $html; }
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 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>'; } } } }