Home Forums WoodMart support forum How to hide empty categories?

How to hide empty categories?

Viewing 6 posts - 1 through 6 (of 6 total)
  • Author
    Posts
  • #48077

    Lateefuddien
    Participant

    https://i.gyazo.com/ecb0faf6e29edbe59f3c49c957fe961b.png

    Please tell me how to hide these empty categories?

    #48085

    Eric Watson
    Participant

    Hello,

    Try to add following code snippet to the functions.php file in your child theme

    	function woodmart_product_categories_nav() {
    		global $wp_query, $post;
    
    		$show_subcategories = woodmart_get_opt( 'shop_categories_ancestors' );
    		$show_categories_neighbors = woodmart_get_opt( 'show_categories_neighbors' );
    
    		$list_args = array(  
    			'taxonomy' => 'product_cat', 
    			'hide_empty' => true 
    		);
    
    		// Menu Order
    		$list_args['menu_order'] = false;
    		$list_args['menu_order'] = 'asc';
    
    		// Setup Current Category
    		$current_cat   = false;
    		$cat_ancestors = array();
    
    		if ( is_tax( 'product_cat' ) ) {
    
    			$current_cat   = $wp_query->queried_object;
    			$cat_ancestors = get_ancestors( $current_cat->term_id, 'product_cat' );
    
    		}
    
    		$list_args['depth']            = 5;
    		$list_args['child_of']         = 0;
    		$list_args['title_li']         = '';
    		$list_args['hierarchical']     = 1;
    		$list_args['show_count']       = woodmart_get_opt( 'shop_products_count' );
    		$list_args['walker'] = new WOODMART_Walker_Category();
    
    		$class = ( woodmart_get_opt( 'shop_products_count' ) ) ? 'has-product-count' : 'hasno-product-count';
    
    		$shop_link = get_post_type_archive_link( 'product' );
    
    		include_once( WC()->plugin_path() . '/includes/walkers/class-product-cat-list-walker.php' );
    		
    		if( is_object( $current_cat ) && !get_term_children( $current_cat->term_id, 'product_cat' ) && $show_subcategories && !$show_categories_neighbors ) return;
    		
    		echo '<div class="woodmart-show-categories"><a href="#">' . esc_html__('Categories', 'woodmart') . '</a></div>';
    
    		echo '<ul class="woodmart-product-categories ' . esc_attr( $class ). '">';
    		
    		echo '<li class="cat-link shop-all-link"><div class="category-nav-link"><a href="' . esc_url( $shop_link ) . '">
    				<span class="category-summary">
    					<span class="category-name">' . esc_html__('All', 'woodmart') . '</span>
    					<span class="category-products-count">
    						<span class="cat-count-label">' . esc_html__('products', 'woodmart') . '</span>
    					</span>
    				</span>
    		</a></div></li>';
    
    		if( $show_subcategories ) {
    			woodmart_show_category_ancestors();
    		} else {
    			wp_list_categories( $list_args );
    		}
    
    		echo '</ul>';
    	}

    Kind Regards
    XTemos Studio

    #48098

    Lateefuddien
    Participant

    Thank you, it works

    #48100

    Eric Watson
    Participant

    You are welcome!

    #116450

    VladDascalu
    Participant

    I have the same problem. But this doesn’t make any changes on my menu. Is another way to hide the empty categories?

    #116547

    Artem Temos
    Keymaster

    Hello,

    Please, send us your admin access and a screenshot where you added the code.

    Regards

Viewing 6 posts - 1 through 6 (of 6 total)