Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

191
Visualizações
How to exclude a category from the category list widget for non admin users

I'm trying to exclude one category from the category list widget on the Shop and product archive pages for users other than the administrator. But for some reason it doesn't work.

Any help, thanks.

function exclude_category( $terms, $taxonomies, $args ) {
    $new_terms = array();

    /*if ( !is_admin()  && ( is_product() || is_shop() || is_product_category() || is_product_tag() ) ){ */
    if ( !is_admin() || is_product() || is_shop() || is_product_category() || is_product_tag()  ){  
        foreach ( $terms as $key => $term ) {
            if( is_object ( $term ) ) {
                if ( 'some-category' == $term->slug && $term->taxonomy = 'product_cat' ) {
                    unset($terms[$key]);
                }
            }
        }
    }
    return $terms;
}
add_filter( 'get_terms', 'exclude_category', 10, 3 );

I was inspired by this: https://stackoverflow.com/a/48849931/16275280

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Excluding a product category on WooCommerce

Use the following conditional checks instead:

  • To check whether a user is admin or not, you could use the roles property of the user object returned from wp_get_current_userDocs function.
  • To check whether you're on woocommerce pages or not (i.e is_product() || is_shop() || is_product_category() || is_product_tag()), you could simply use this is_woocommerce() function.

So the entire code would be:

add_filter('get_terms', 'exclude_category', 10, 3);

function exclude_category($terms, $taxonomies, $args)
{
    $roles = wp_get_current_user()->roles;

    if 
      (
        !in_array('administrator', $roles)
        &&
        is_woocommerce() 
      ) 
    {
        foreach ($terms as $key => $term) 
        {
            if (is_object($term)) 
            {
                if ('decor' == $term->slug && $term->taxonomy == 'product_cat') 
                {
                    unset($terms[$key]);
                }
            }
        }
    }
    return $terms;
}

Note:

  • I've used 'decor' as the category slug to test this snippet on my site, so don't forget to replace it with your own category slug.

And here's the result:

enter image description here


Excluding a category on Wordpress

add_filter('get_terms', 'exclude_category', 10, 3);

function exclude_category($terms, $taxonomies, $args)
{
    $roles = wp_get_current_user()->roles;

    if (
        !in_array('administrator', $roles)
       ) 
    {
        foreach ($terms as $key => $term) 
        {
            if (is_object($term)) 
            {
                if ('uncategorized' == $term->slug && $term->taxonomy == 'category') 
                {
                    unset($terms[$key]);
                }
            }
        }
    }
    return $terms;
}

Note:

  • I've used 'uncategorized' as the category slug to test this snippet on my site, so don't forget to replace it with your own category slug.

Excluding multiple categories in WooCommerce

You could set up an array and use in_array function for the conditional check. Like this:

$excluded_cat_slugs = array ('hoodies', 'decor');  

if(in_array($term->slug, $excluded_cat_slugs) && $term->taxonomy == 'product_cat')

Excluding multiple categories in Wordpress

$excluded_cat_slugs = array ('uncategorized', 'test-category');  

if(in_array($term->slug, $excluded_cat_slugs) && $term->taxonomy == 'category')
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda