Tagged: 

Viewing 4 posts - 1 through 4 (of 4 total)
  • Author
    Posts
  • #757681

    HI,

    can anyone tell me how i can add a link back to the product category on my single product pages ?

    i dort wanna show the full breadcrumb on my single product pages.

    Category One
    – Product One

    if i am browsing product one i wanna add a link ( Category One ) that gives people the chance to quickly browse back to the category overview.

    any help would be great :)

    Thanks in advanced

    #760492

    Hi Shorty05!

    Thank you for using Enfold.

    Do you want to display only one product category in the breadcrumb? Please add this in the functions.php file:

    add_action('after_setup_theme', 'ava_modify_product_breadcrumb');
    function ava_modify_product_breadcrumb() {
    	remove_filter('avia_breadcrumbs_trail','avia_woocommerce_breadcrumb');
    	add_filter('avia_breadcrumbs_trail','avia_woocommerce_breadcrumb_mod');
    }
    
    function avia_woocommerce_breadcrumb_mod($trail)
    {
    	global $avia_config;
    
    	if(is_woocommerce())
    	{
    
    		$home 		= $trail[0];
    		$last 		= array_pop($trail);
    		$shop_id 	= woocommerce_get_page_id('shop');
    		$taxonomy 	= "product_cat";
    
    		// on the shop frontpage simply display the shop name, rather than shop name + "All Products"
    		if(is_shop())
    		{
    			if(!empty($shop_id) && $shop_id  != -1)  $trail = array_merge( $trail, avia_breadcrumbs_get_parents( $shop_id ) );
    			$last = "";
    
    			if(is_search())
    			{
    				$last = __('Search results for:','avia_framework').' '.esc_attr($_GET['s']);
    			}
    		}
    
    		// on the product page single page modify the breadcrumb to read [home] [if available:parent shop pages] [shop] [if available:parent categories] [category] [title]
    		if(is_product())
    		{
    			//fetch all product categories and search for the ones with parents. if none are avalaible use the first category found
    			$product_category = $parent_cat = array();
    			$temp_cats = get_the_terms(get_the_ID(), $taxonomy);
    
    			if(!empty($temp_cats))
    			{
    				foreach($temp_cats as $key => $cat)
    				{
    					if($cat->parent != 0 && !in_array($cat->term_taxonomy_id, $parent_cat))
    					{
    						$product_category[] = $cat;
    						$parent_cat[] = $cat->parent;
    					}
    				}
    
    				//if no categories with parents use the first one
    				if(empty($product_category)) $product_category[] = reset($temp_cats);
    
    			}
    			//unset the trail and build our own
    			unset($trail);
    
    			$trail[0] = $home;
    			if(!empty($shop_id) && $shop_id  != -1)    $trail = array_merge( $trail, avia_breadcrumbs_get_parents( $shop_id ) );
    			//if(!empty($parent_cat)) $trail = array_merge( $trail, avia_breadcrumbs_get_term_parents( $parent_cat[0] , $taxonomy ) );
    			if(!empty($product_category)) $trail[] = '<a href="' . get_term_link( $product_category[0]->slug, $taxonomy ) . '" title="' . esc_attr( $product_category[0]->name ) . '">' . $product_category[0]->name . '</a>';
    
    		}
    
    		// add the [shop] trail to category/tag pages: [home] [if available:parent shop pages] [shop] [if available:parent categories] [category/tag]
    		if(is_product_category() || is_product_tag())
    		{
    			if(!empty($shop_id) && $shop_id  != -1)
    			{
    				$shop_trail = avia_breadcrumbs_get_parents( $shop_id ) ;
    				array_splice($trail, 1, 0, $shop_trail);
    			}
    		}
    
    		if(is_product_tag())
    		{
    			$last = __("Tag",'avia_framework').": ".$last;
    		}
    
    		if(!empty($last)) $trail[] = $last;
    	}
    
    	return $trail;
    }
    

    Regards,
    Ismael

    #764077

    Hi Ismael,

    sorry for the delay in replying. I will try the code and let you know if it works ;)

    #764517

    Hi,

    Great, let us know how you get on with it.

    Best regards,
    Rikard

Viewing 4 posts - 1 through 4 (of 4 total)
  • You must be logged in to reply to this topic.