FernandoAcosta.Netdocs

Configurar frete grátis

2 min de leituraAtualizado há 5 dias

O plugin oferece duas formas de configurar frete grátis. Use a que combina com o seu cenário.

1. Frete grátis pra toda a tabela (campo global)

Nas configurações do método, preencha Mínimo para frete grátis com o valor de pedido a partir do qual o frete sai gratuito.

  • Aplica a todas as linhas da tabela.
  • Mais simples — não precisa editar o CSV.
  • Não dá pra ter regras diferentes por região nesse modo.

Exemplo: 200 → qualquer pedido acima de R$ 200 sai com frete grátis nessa tabela.

2. Frete grátis por linha (coluna no CSV)

Mapeie uma coluna do CSV pro campo Frete grátis. Cada linha pode ter um valor mínimo diferente:

CEPInicial,CEPFinal,Custo,Prazo,FreteGratis
01000000,19999999,15.50,5,150
20000000,29999999,25.00,7,300
  • Pedido pra CEP de São Paulo (01...19): grátis acima de R$ 150.
  • Pedido pra CEP do Rio (20...29): grátis acima de R$ 300.

Mais flexível, mas exige editar o CSV pra cada mudança de campanha.

Quando usar cada um
  • Promoção temporária pra todo o site → campo global, fácil de tirar depois.
  • Frete grátis estratégico por região → coluna no CSV, controle fino.

3. Frete grátis com mínimo por área de entrega

Você pode usar a estrutura nativa de áreas de entrega do WooCommerce pra criar frete grátis em campanhas:

  1. Crie uma área de entrega só pros estados/CEPs da campanha.
  2. Adicione lá uma cópia da tabela e preencha o Mínimo para frete grátis.
  3. Quando a campanha acabar, desative ou apague essa área.
Apenas uma área é considerada

O WooCommerce avalia áreas de cima pra baixo e usa a primeira que combina. Áreas específicas (estados/cidades) precisam vir antes de áreas amplas (país inteiro), senão a específica nunca é alcançada.

4. Frete grátis condicional via código

Pra regras complexas (ex: cliente recorrente, cupom específico, dia da semana) use o filtro wc_table_shipping_cost:

add_filter( 'wc_table_shipping_cost', function( $cost, $rate, $package ) {
    if ( 200 <= $package['contents_cost'] ) {
        $cost = 0;
    }
    return $cost;
}, 10, 3 );

Mais exemplos em Snippets PHP.

Como o plugin decide

Quando há múltiplos critérios, o plugin checa nesta ordem:

  1. Filtros PHP (se algum reescreve o custo, vence).
  2. Coluna FreteGratis na linha (se valor é atingido, custo = 0).
  3. Mínimo global no método (se valor é atingido, custo = 0).
  4. Se nenhum bater, exibe o custo normal.

A coluna por linha tem prioridade sobre o mínimo global, então uma sobrescreve a outra quando ambas existem.

Foi útil?