Manter a organização e a apresentação dos produtos na sua loja WooCommerce é fundamental para otimizar a experiência do usuário e, consequentemente, aumentar a taxa de conversão.
Em períodos estratégicos, como a Black Friday, ofertas especiais ou coleções temáticas, uma abordagem dinâmica pode ser muito eficaz. Exibir os produtos em ordem aleatória (randomizada) a cada visita é uma tática inteligente para:
- Destacar diferentes itens a cada carregamento de página.
- Incentivar o cliente a navegar por mais produtos.
- Melhorar a descoberta de itens que ficariam “escondidos” no final de uma lista ordenada de forma padrão.
Neste guia da Mutt Studio, você aprenderá a implementar facilmente uma ordenação aleatória em uma categoria específica do WooCommerce, além de ver como alterar essa ordenação para outros critérios, como preço, data e popularidade.
Código para Exibir uma Categoria em Ordem Aleatória
Para aplicar a ordenação aleatória em uma categoria específica, você precisará adicionar o snippet de código abaixo.
Onde Inserir o Código: Adicione este código no arquivo
functions.phpdo seu tema filho (child theme) ou, de forma mais recomendada, em um plugin personalizado para garantir que a funcionalidade não seja perdida em atualizações do tema.
/*
* Ordem aleatoria para categoria especifica (Mutt Studio)
*/
add_action('pre_get_posts', 'mutt_random_order_black_november');
function mutt_random_order_black_november($query) {
// Verifica se é a query principal e se está no frontend
if (!is_admin() && $query->is_main_query()) {
// Verifica se está na categoria de produtos "black-november"
if (is_product_category('black-november')) {
$query->set('orderby', 'rand');
}
}
}
O que o Código Faz
Este snippet utiliza o hook pre_get_posts do WordPress para interceptar a consulta (query) de produtos antes que ela seja executada. Ele garante que:
- A alteração só seja feita no frontend da loja.
- A alteração só ocorra na consulta principal da página.
- A ordenação (
orderby) seja definida comorand(aleatória) apenas quando o usuário estiver visualizando a categoria com o slugblack-november.
Como Alterar a Forma de Ordenação (Outras Opções)
Caso você queira aplicar uma ordenação diferente da aleatória (rand), basta substituir o $query->set('orderby', 'rand'); e adicionar os parâmetros de ordenação desejados dentro da mesma função.
Por Preço (Menor para Maior) – Crescente
Útil para mostrar os produtos mais acessíveis primeiro.
$query->set('orderby', 'meta_value_num');
$query->set('meta_key', '_price');
$query->set('order', 'ASC'); // ASC = Ascendente
Por Preço (Maior para Menor) – Decrescente
Ideal para destacar itens premium ou de maior valor.
$query->set('orderby', 'meta_value_num');
$query->set('meta_key', '_price');
$query->set('order', 'DESC'); // DESC = Descendente
Por Data (Novidades Primeiro)
Perfeito para a categoria “Lançamentos” ou “Novidades”.
$query->set('orderby', 'date');
$query->set('order', 'DESC');
Por Popularidade (Mais Vendidos)
Uma das formas mais eficazes para gerar prova social.
$query->set('meta_key', 'total_sales');
$query->set('orderby', 'meta_value_num');
$query->set('order', 'DESC'); // Opcional, mas recomendado para mais vendidos primeiro
Como Alterar a Categoria Alvo
No snippet original, a categoria alvo é identificada pelo seu slug:
if (is_product_category('black-november')) {
// ...
}
Para aplicar a regra de ordenação em outra categoria, basta trocar o slug black-november pelo slug da categoria que você deseja modificar. O slug é a versão amigável do nome, geralmente em letras minúsculas e sem acentos, que aparece na URL da categoria.
Exemplos:
- Para a categoria Promoções:
is_product_category('promocoes') - Para a categoria Novidades:
is_product_category('novidades') - Para a categoria Lançamentos:
is_product_category('lancamentos')
Essa flexibilidade na ordenação de produtos é uma ferramenta poderosa para gerenciar o seu e-commerce e direcionar a atenção do cliente para onde você deseja!
Até a próxima! 🚀