Como corrigir o cálculo de frete errado no WooCommerce
O que é o cálculo de frete errado no WooCommerce?
No WooCommerce, o frete é calculado por zonas de entrega: você define regiões (por CEP, estado ou país) e, dentro de cada uma, métodos como valor fixo, frete grátis ou cálculo por transportadora. O ‘frete errado’ é qualquer divergência nesse cálculo: o valor sai inflado, some no checkout, ignora o peso do pedido, ou aplica frete grátis indevidamente. Quase sempre a causa é a combinação de zona, classe de frete e dados de produto não baterem.
Como identificar
- O frete no checkout vem muito acima ou abaixo do valor real da transportadora.
- A mensagem ‘Não há métodos de envio disponíveis para o seu endereço’ aparece para CEPs válidos.
- O frete grátis aparece em pedidos que não atingiram o valor mínimo configurado.
- O cálculo ignora o peso ou as dimensões e cobra sempre o mesmo valor, mesmo com o carrinho cheio.
Como prevenir
- Cadastre peso e dimensões em todo produto novo antes de publicá-lo na loja
- Mantenha as zonas de entrega sem sobreposição e revise a ordem delas após cada mudança de cobertura
- Valide tokens e contratos dos plugins de cotação de transportadora periodicamente para não receber valores padrão errados
Causa
- Zona de entrega sem o CEP/estado do cliente, ou com zonas sobrepostas onde a primeira que casa (geralmente errada) vence.
- Produtos sem peso e dimensões cadastrados, fazendo o método por transportadora calcular com base zero ou recusar o cálculo.
- Classe de frete atribuída ao produto mas sem custo configurado no método de envio da zona, gerando valor incorreto.
- Regra de frete grátis com 'cupom' ou 'valor mínimo' mal configurada, liberando frete grátis fora da condição esperada.
- Plugin de cotação de transportadora (Correios, Melhor Envio) com token ou contrato vencido devolvendo valor padrão errado.
Como resolver
- Revise as zonas de entrega: em WooCommerce > Configurações > Entrega, confirme que existe uma zona cobrindo o CEP/estado do cliente e que as zonas não se sobrepõem. O WooCommerce usa a primeira zona que casa, de cima para baixo.
- Cadastre peso e dimensões nos produtos: em cada produto, na aba Entrega, preencha peso e dimensões. Métodos por transportadora precisam desses dados para calcular; sem eles o frete sai errado ou nem aparece.
- Confira as classes de frete: em Configurações > Entrega > Classes de frete, verifique se cada classe usada tem custo definido dentro do método da zona. Classe sem custo configurado distorce o valor final.
- Cheque a regra de frete grátis: abra o método 'Frete grátis' da zona e confirme a condição (valor mínimo, cupom ou ambos). Uma condição mal marcada libera frete grátis indevido.
- Teste com endereços reais: faça pedidos de teste com CEPs de regiões diferentes e confira o valor contra a tabela da transportadora. Se usar plugin de cotação, valide o token e o contrato no painel do provedor.
// functions.php do tema filho — esconde 'Frete gratis' quando outros metodos
// existem na zona, evitando que apareca junto com frete pago e confunda o calculo
add_filter( 'woocommerce_package_rates', function ( $rates ) {
$free = array();
foreach ( $rates as $key => $rate ) {
if ( 'free_shipping' === $rate->method_id ) {
$free[ $key ] = $rate;
}
}
return ! empty( $free ) ? $free : $rates;
}, 100 );














