WooCommerce 10.5: o que muda para developers (performance, API e breaking changes)
O WooCommerce 10.5 entra na fase final com foco claro em reduzir carga desnecessária no servidor (especialmente em lojas com volume alto), corrigir arestas na experiência de checkout e limpar alguns pontos que, na prática, estavam a causar problemas de compatibilidade entre extensões. Se manténs plugins/integrações em cima do WooCommerce, esta é uma versão para ler com atenção – há melhorias grandes de performance, novos filtros e alguns avisos que podem impactar código existente.
Calendário de release do WooCommerce 10.5 (e como testar)
O ciclo do 10.5 foi marcado pelo Feature Freeze a 12 de janeiro de 2026, e a partir daí entrou forte a fase de testes e estabilização.
- ✅ Feature Freeze – Added: January 12, 2026
- ✅ WooCommerce 10.5 Beta 1 – Released: January 19, 2026
- ✅ WooCommerce 10.5 Beta 2 – Released: January 26, 2026
- ⏳ WooCommerce Release 10.5 – Scheduled: February 4, 2026
Para testar as betas, a recomendação oficial é usar o WooCommerce Beta Tester plugin, que facilita alternar entre versões beta sem ter de gerir ZIPs manualmente.
O que vem aí no 10.5 (mudanças centrais)
1) Importação de encomendas para Analytics: de “uma action por evento” para importações agendadas em batch
A mudança mais estrutural do WooCommerce 10.5 está na forma como os dados das encomendas são importados para as tabelas de Analytics. Até aqui, cada evento de encomenda disparava um job de importação via ActionScheduler. Mesmo sendo assíncrono, em lojas com tráfego e volume altos isto gerava filas enormes (10.000+ actions), com degradação séria de performance, contenção na base de dados e lentidão generalizada do site.
No 10.5, o comportamento por defeito passa a ser Scheduled Imports: uma abordagem por lotes (batch processing) que refresca os dados de Analytics a cada 12 horas e processa 100 encomendas por batch. Ambos os valores são configuráveis por filtros novos:
woocommerce_analytics_import_interval– controla o intervalo (por defeito, 12 horas).woocommerce_analytics_regenerate_batch_size– controla o tamanho do batch (por defeito, 100 encomendas por batch).
O efeito prático é uma redução drástica no número de ações agendadas e na pressão sobre a base de dados. Além disso, há um ganho de clareza operacional para quem gere a loja: o estado das importações fica mais visível e continua a ser possível disparar importações manualmente quando necessário. (PR: #61603)
2) Checkout block: UI das opções de envio melhorada (thumbnails, packages) + correção de sync Ship/Pickup
Para quem usa o Checkout em blocos (block-based checkout), o 10.5 melhora a UI das opções de envio: quando existem múltiplos packages (um cenário comum, por exemplo, com produtos de subscrição), as opções passam a apresentar thumbnails dos produtos e containers com borda, tornando a leitura e seleção mais óbvias.
A mesma entrega também corrige um bug relevante: ao alternar entre opções de entrega Ship e Pickup, os métodos de envio nem sempre sincronizavam corretamente. (PR: #61625)
3) Encomendas com dados de impostos “legados” ou corrompidos: mais robustez na visualização
Outra correção que tende a salvar tempo de suporte: o WooCommerce 10.5 melhora a confiabilidade ao abrir encomendas antigas (ou com dados de impostos danificados) em que os valores de imposto estavam guardados como float/string em vez de arrays – algo que pode acontecer por migrações antigas, integrações que gravaram dados fora do formato esperado, ou casos específicos de legado.
A solução no core adiciona tratamento backwards-compatible em todos os tipos de itens de encomenda (produtos, envios, taxas/fees), tenta inferir IDs de taxas (tax rate IDs) com base no contexto da encomenda, e ainda expõe um filtro para personalizar a conversão:
woocommerce_order_item_legacy_tax_conversion– permite lógica de conversão customizada em extensões.
(PR: #62271)
4) CSS do Select2: estilos do WooCommerce deixam de “vazar” para outros plugins
Se já apanhaste interfaces de outros plugins “mexidas” por estilos do WooCommerce, esta é para ti. No 10.5, os estilos do Select2 carregados pelo WooCommerce passam a estar scoped de forma a não afetar outras áreas do wp-admin nem UI de terceiros, através de :where(.woocommerce).
O detalhe importante aqui é que :where() tem especificidade zero, o que ajuda a manter compatibilidade com overrides existentes, ao mesmo tempo que evita o efeito colateral de styling global. (PR: #61956)
5) Novo filtro woocommerce_shipping_tax_class: cálculo dinâmico de impostos no envio
O 10.5 introduz um filtro novo para suportar cenários de impostos mais complexos no cálculo do envio: woocommerce_shipping_tax_class. A ideia é permitir definir a tax class (classe de imposto) do shipping de forma dinâmica, com base no conteúdo do carrinho, dados do cliente e localização.
Isto abre espaço para regras como “usar a taxa predominante no carrinho para taxar o envio”, o que é útil em países/mercados com regras específicas (o post cita o caso dos Países Baixos/Netherlands como exemplo de complexidade). (PR referenciado no post: #59512)
Mudanças de API e avisos para extensões (Developer Advisories)
Além das features principais, o 10.5 agrega um conjunto de mudanças que foram detalhadas em posts próprios no blog de developers. Aqui fica o mapa do que merece validação no teu código.
WC REST API: decoding correto de caracteres especiais em atributos de variações
A WC REST API passa a lidar corretamente com decoding de caracteres especiais em atributos de variações de produto. Na prática, isto reduz inconsistências quando tens atributos com caracteres fora do “ASCII simples” e integrações que dependem de valores estáveis na API.
Mais detalhes no advisory: https://developer.woocommerce.com/2026/01/14/wc-rest-api-fixes-for-product-variation-attributes-with-special-characters-in-woocommerce-10-5/
Remoção do trait AccessiblePrivateMethods (namespace Internal)
O trait AccessiblePrivateMethods vai ser removido. Ele vivia no namespace Internal, o que já era um sinal explícito de que não deveria ser consumido publicamente. Ainda assim, algumas extensões acabaram por depender dele de forma indevida – e é aí que pode haver impacto.
Advisory completo: https://developer.woocommerce.com/2026/01/15/removal-of-the-accessibleprivatemethods-trait-in-woocommerce-10-5/
Permalinks de produto baseados em categorias: prioridade para a categoria mais profunda
Para estruturas específicas de permalink que usam categorias no URL do produto, o 10.5 vai ajustar a forma como a categoria é escolhida: a prioridade passa a ser a categoria mais profunda. O objetivo é melhorar SEO e consistência dos URLs, mas isto pode alterar URLs gerados (e por consequência caches, regras de rewrite, ou integrações que assumiam uma categoria diferente).
Advisory: https://developer.woocommerce.com/2026/01/13/product-permalink-changes-coming-in-woocommerce-10-5/
Produto variável: botão “Add to Cart” desativado até o script de variações carregar
Em páginas de produtos variáveis, o WooCommerce passa a garantir que o Add to Cart fica desativado até o script de variações terminar de carregar. Isto resolve um comportamento que aparecia em ligações lentas: o utilizador conseguia clicar em “Add to Cart” antes da lógica de seleção/inicialização de variações estar pronta, resultando em submissões falhadas.
Advisory: https://developer.woocommerce.com/2026/01/16/add-to-cart-button-disabled-by-default-in-variable-products-in-woocommerce-10-5/
Performance: caches experimentais e melhorias em pontos críticos
REST API cache experimental (aplicável a qualquer endpoint)
O 10.5 introduz um REST API cache experimental, desenhado para ser aplicável a qualquer endpoint na WC REST API. O anúncio indica que vai haver mais informação (incluindo instruções de teste) antes do release final.
Caching de preços de variações: melhorias + nova utility class para callbacks
O caching de preços de variações também recebeu melhorias, juntamente com uma nova utility class para trabalhar com callbacks. Para detalhes técnicos e impacto esperado, o ponto de entrada é o post dedicado: https://developer.woocommerce.com/2026/01/08/variation-prices-caching-improvements-in-woocommerce-10-5/
Product Object Caching experimental: menos loads duplicados por request
Outra novidade relevante é o Product Object Caching (experimental). A proposta é cachear instâncias de produto durante cada request, evitando carregamentos duplicados a partir da base de dados quando o mesmo produto é necessário em múltiplos pontos do ciclo de execução.
PR: https://github.com/woocommerce/woocommerce/pull/62041 – Post com contexto: https://developer.woocommerce.com/2026/01/19/experimental-product-object-caching-in-woocommerce-10-5/
Product Filters: correção de cache data mal definido (e limpeza via transients)
O 10.5 corrige problemas de performance relacionados com dados de cache do bloco Product Filters que não estavam a ser corretamente definidos e carregados. Quando isto acontecia, a base de dados podia ficar inundada com cache data de filtros, afetando lojas com catálogos grandes.
Além do fix, a ferramenta de limpeza de transients do WooCommerce foi atualizada para também limpar este cache de filtros quando executa. Ainda assim, fica um ponto operacional importante: se uma loja usa o bloco Product Filters e continua com sintomas de performance, uma causa provável pode ser precisamente este cache – e a solução indicada é limpar os transients do WooCommerce. (PR: #62575)
Changelog completo (para auditoria de regressões)
Para uma revisão exaustiva de mudanças (incluindo detalhes menores), o changelog completo do 10.5 beta está aqui: https://github.com/woocommerce/woocommerce/blob/10.5.0-beta.1/plugins/woocommerce/readme.txt
Checklist rápida para developers antes de atualizar em produção
- Testar com o WooCommerce Beta Tester plugin num ambiente de staging, especialmente se a loja for de alto volume.
- Se tens código que interage com Analytics/ActionScheduler, observar a mudança para Scheduled Imports e validar se existem rotinas internas que assumiam “uma action por evento”.
- Rever CSS/admin UIs se dependiam (mesmo sem querer) do styling global do Select2 do WooCommerce; agora os estilos estão scoped com
:where(.woocommerce). - Se tens extensões a consumir símbolos do namespace
Internal, procurar uso do trait AccessiblePrivateMethods e remover dependência. - Se geras URLs de produto com base em categorias (permalink structures específicas), validar impacto da escolha da categoria mais profunda.
- Se integras com a REST API para variações/atributos, validar decoding de caracteres especiais.
- Se usas Product Filters block em catálogos grandes, monitorizar performance e considerar limpeza de transients se houver degradação após upgrade.
Referências / Fontes
- WooCommerce 10.5: What’s coming for developers Release Posts
- wc-rest-api-fixes-for-product-variation-attributes-with-special-characters-in-woocommerce-10-5
- Removal of the AccessiblePrivateMethods trait in WooCommerce 10.5
- Product permalink changes coming in WooCommerce 10.5
- Add to cart button disabled by default in variable products in WooCommerce 10.5
- Variation prices caching improvements in WooCommerce 10.5
- Experimental Product Object Caching in WooCommerce 10.5
- woocommerce/woocommerce pull request #61603
- woocommerce/woocommerce pull request #61625
- woocommerce/woocommerce pull request #62271
- woocommerce/woocommerce pull request #61956
- woocommerce/woocommerce pull request #62040
- woocommerce/woocommerce pull request #62575
- WooCommerce 10.5.0-beta.1 readme.txt changelog
Inês Silva
Editora da equipa portuguesa, especialista em SEO e otimização de performance. Core Web Vitals e Lighthouse são os meus favoritos. Sites rápidos, utilizadores felizes.
Todos os postsMais de Inês Silva
GPT-5.3-Codex: o salto do Codex de “agente de código” para colaborador completo no computador
WP Media Cleanup (Duplicator): como remover variações de imagens não usadas no WordPress e recuperar espaço em disco
WP-CLI e Abilities API no Wordfence: operar segurança no WordPress a partir do terminal (e de agentes de IA)