Cole numa página, num bloco Shortcode ou no widget de shortcode do seu construtor:
[best_selling_by_period limit="3" columns="3" period="7day"]

Sem atributos, mostra os 12 mais vendidos dos últimos 7 dias, em 4 colunas. O visual é o da listagem de produtos do seu tema.
Atributos
| Atributo | Padrão | Observação |
|---|---|---|
limit |
12 |
|
columns |
4 |
|
period |
7day |
Veja Períodos disponíveis. |
start_date / end_date |
Só com period="custom". Formato 2026-01-31. Sem end_date, vai até hoje. |
|
category |
Slugs ou IDs, separados por vírgula. Mostra os mais vendidos dessas categorias, com subcategorias. | |
exclude_category |
Tira do ranking os produtos dessas categorias. | |
force |
false |
true ignora o cache. Só para teste. |
source |
orders |
snapshot usa o ranking diário, o mesmo da faixa. |
Outros atributos vão para o [products] do WooCommerce, como class.
Exemplos
Mais vendidos do mês em Calçados, sem a categoria Promoções:
[best_selling_by_period category="calcados" exclude_category="promocoes" period="month"]
Mesma ordem das faixas, 4 produtos de Cadeiras:
[best_selling_by_period source="snapshot" category="cadeiras" limit="4"]
Quando usar source="snapshot"
Use quando a vitrine tiver que bater com as faixas "Top N". Ele:
- usa o período das configurações (7, 14 ou 30 dias até ontem) e ignora
period,start_date,end_dateeforce; - mostra no máximo 20 produtos;
- aceita uma categoria só.
Com mais de uma categoria, com exclude_category ou sem ranking diário recente, ele calcula na hora. Se você estiver logado como administrador, o código-fonte da página traz um comentário com o motivo.
Em template PHP:
echo do_shortcode( '[best_selling_by_period limit="8" period="month"]' );