<?php
/**
 * Shop Breadcrumb
 */

global $post, $wp_query, $author, $paged, $delimiter, $wrap_before, $wrap_after, $before, $after, $home;

$delimiter = ' &rsaquo; ';
$wrap_before = '<div id="breadcrumb">';
$wrap_after = '</div>';

if( !$home ) $home = _x('Home', 'breadcrumb', 'woocommerce');

$home_link = home_url();

$prepend = '';

if ( get_option('woocommerce_prepend_shop_page_to_urls')=="yes" && woocommerce_get_page_id('shop') && get_option('page_on_front') !== woocommerce_get_page_id('shop') )
	$prepend =  $before . '<a href="' . get_permalink( woocommerce_get_page_id('shop') ) . '">' . get_the_title( woocommerce_get_page_id('shop') ) . '</a> ' . $after . $delimiter;

if ( (!is_home() && !is_front_page() && !(is_post_type_archive() && get_option('page_on_front')==woocommerce_get_page_id('shop'))) || is_paged() ) :

	echo $wrap_before;
	
	echo $before  . '<a class="home" href="' . $home_link . '">' . $home . '</a> '  . $after . $delimiter ;
	
	if ( is_category() ) :
	
		$cat_obj = $wp_query->get_queried_object();
		$this_category = $cat_obj->term_id;
		$this_category = get_category( $this_category );
		if ($this_category->parent != 0) :
			$parent_category = get_category( $this_category->parent );
			echo get_category_parents($parent_category, TRUE, $delimiter );
		endif;
		echo $before . single_cat_title('', false) . $after;
	
	elseif ( is_tax('product_cat') ) :
		
		echo $prepend;
		$term = get_term_by( 'slug', get_query_var( 'term' ), get_query_var( 'taxonomy' ) );
	
		$parents = array();
		$parent = $term->parent;
		while ($parent):
			$parents[] = $parent;
			$new_parent = get_term_by( 'id', $parent, get_query_var( 'taxonomy' ));
			$parent = $new_parent->parent;
		endwhile;
		
		if(!empty($parents)):
			$parents = array_reverse($parents);
			foreach ($parents as $parent):
				$item = get_term_by( 'id', $parent, get_query_var( 'taxonomy' ));
				echo $before .  '<a href="' . get_term_link( $item->slug, 'product_cat' ) . '">' . $item->name . '</a>' . $after . $delimiter;
			endforeach;
		endif;
	
		$queried_object = $wp_query->get_queried_object();
		echo $before . $queried_object->name . $after;
	
	elseif ( is_tax('product_tag') ) :
	
		$queried_object = $wp_query->get_queried_object();
		echo $prepend . $before . __('Products tagged &ldquo;', 'woocommerce') . $queried_object->name . '&rdquo;' . $after;
	
	elseif ( is_day() ) :
	
		echo $before . '<a href="' . get_year_link(get_the_time('Y')) . '">' . get_the_time('Y') . '</a>' . $after . $delimiter;
		echo $before . '<a href="' . get_month_link(get_the_time('Y'),get_the_time('m')) . '">' . get_the_time('F') . '</a>' . $after . $delimiter;
		echo $before . get_the_time('d') . $after;
	
	elseif ( is_month() ) :
	
		echo $before . '<a href="' . get_year_link(get_the_time('Y')) . '">' . get_the_time('Y') . '</a>' . $after . $delimiter;
		echo $before . get_the_time('F') . $after;
	
	elseif ( is_year() ) :
	
		echo $before . get_the_time('Y') . $after;
	
	elseif ( is_post_type_archive('product') && get_option('page_on_front') !== woocommerce_get_page_id('shop') ) :
	
		$_name = woocommerce_get_page_id('shop') ? get_the_title( woocommerce_get_page_id('shop') ) : ucwords(get_option('woocommerce_shop_slug'));
	
		if (is_search()) :
	
			echo $before . '<a href="' . get_post_type_archive_link('product') . '">' . $_name . '</a>' . $delimiter . __('Search results for &ldquo;', 'woocommerce') . get_search_query() . '&rdquo;' . $after;
	
		else :
	
			echo $before . '<a href="' . get_post_type_archive_link('product') . '">' . $_name . '</a>' . $after;
	
		endif;
	
	elseif ( is_single() && !is_attachment() ) :
	
	if ( get_post_type() == 'product' ) :
	
			echo $prepend;
	
			if ($terms = wp_get_object_terms( $post->ID, 'product_cat' )) :
			$term = current($terms);
			$parents = array();
			$parent = $term->parent;
			while ($parent):
				$parents[] = $parent;
				$new_parent = get_term_by( 'id', $parent, 'product_cat');
				$parent = $new_parent->parent;
			endwhile;
			if(!empty($parents)):
				$parents = array_reverse($parents);
				foreach ($parents as $parent):
					$item = get_term_by( 'id', $parent, 'product_cat');
					echo $before . '<a href="' . get_term_link( $item->slug, 'product_cat' ) . '">' . $item->name . '</a>' . $after . $delimiter;
				endforeach;
			endif;
			echo $before . '<a href="' . get_term_link( $term->slug, 'product_cat' ) . '">' . $term->name . '</a>' . $after . $delimiter;
		endif;
	
		echo $before . get_the_title() . $after;
	
	elseif ( get_post_type() != 'post' ) :
		$post_type = get_post_type_object(get_post_type());
		$slug = $post_type->rewrite;
			echo $before . '<a href="' . get_post_type_archive_link(get_post_type()) . '">' . $post_type->labels->singular_name . '</a>' . $after . $delimiter;
		echo $before . get_the_title() . $after;
	else :
		$cat = current(get_the_category());
		echo get_category_parents($cat, TRUE, $delimiter);
		echo $before . get_the_title() . $after;
	endif;
	
	elseif ( is_404() ) :
	
		echo $before . __('Error 404', 'woocommerce') . $after;
	
	elseif ( !is_single() && !is_page() && get_post_type() != 'post' ) :
	
		$post_type = get_post_type_object(get_post_type());
		if ($post_type) : echo $before . $post_type->labels->singular_name . $after; endif;
	
	elseif ( is_attachment() ) :
	
		$parent = get_post($post->post_parent);
		$cat = get_the_category($parent->ID); $cat = $cat[0];
		echo get_category_parents($cat, TRUE, '' . $delimiter);
		echo $before . '<a href="' . get_permalink($parent) . '">' . $parent->post_title . '</a>' . $after . $delimiter;
		echo $before . get_the_title() . $after;
	
	elseif ( is_page() && !$post->post_parent ) :
	
		echo $before . get_the_title() . $after;
	
	elseif ( is_page() && $post->post_parent ) :
	
		$parent_id  = $post->post_parent;
		$breadcrumbs = array();
		while ($parent_id) {
			$page = get_page($parent_id);
			$breadcrumbs[] = '<a href="' . get_permalink($page->ID) . '">' . get_the_title($page->ID) . '</a>';
			$parent_id  = $page->post_parent;
		}
		$breadcrumbs = array_reverse($breadcrumbs);
		foreach ($breadcrumbs as $crumb) :
			echo $crumb . '' . $delimiter;
		endforeach;
		echo $before . get_the_title() . $after;
	
	elseif ( is_search() ) :
	
		echo $before . __('Search results for &ldquo;', 'woocommerce') . get_search_query() . '&rdquo;' . $after;
	
	elseif ( is_tag() ) :
	
			echo $before . __('Posts tagged &ldquo;', 'woocommerce') . single_tag_title('', false) . '&rdquo;' . $after;
	
	elseif ( is_author() ) :
	
		$userdata = get_userdata($author);
		echo $before . __('Author:', 'woocommerce') . ' ' . $userdata->display_name . $after;
	
	endif;
	
	if ( get_query_var('paged') ) :
	
		echo ' (' . __('Page', 'woocommerce') . ' ' . get_query_var('paged') .')';
	
	endif;
	
	echo $wrap_after;

endif;
		