Calcular frete woocommerce de acordo com valor da compra – Frete grátis

Muitos lojistas gostam de ter opções de promoção para o final de ano, mas os itens de frete grátis dentro do Woocommerce são restritos.

Não dá para oferece um determinado valor para determinada cidade com frete gratuito, mas vamos resolver este problema. Vamos dar de presente para o cliente Frete Grátis via PAC dos correios no valor igual ou superior a R$ 300,00 de compra, para pessoas que moram em Capitais.

Primeiro temos que cadastrar uma nova área de entrega dos produtos. Acesse o painel do WP em WooCommerce clique em Configurações. Na página que abre busque nas abas Entrega.

Clique no botão Adicionar área de Entrega

Digite um nome da área para esta nova zona geográfica, selecione Brasil e clique em Limitar para CEPs específicos. Coloque todas as faixas de CEPs das capitais dentro do box que se abre.

Você precisa cadastrar todos os CEPs das capitais. Eu acabei fazendo isso e vou disponibilizar as faixas de CEPs de cada Capital (total do município) aqui, lembrando que coloquei por ordem dos estados: AC, AL, AM , AP , BA , CE , DF 2 linhas, ES , GO , MA , MG , MS , MT , PA , PB , PE , PI , PR , RJ , RN , RO , RR , RS , SC , SE , SP 2 linhas, TO. Veja mais detalhes na página dos correios: http://www.buscacep.correios.com.br/sistemas/buscacep/buscaFaixaCep.cfm

Novo link:

https://buscacepinter.correios.com.br/app/faixa_cep_uf_localidade/index.php

69000001...69099999
57000001...57099999
69900001...69924999
68900001...68914999
40000001...42599999
60000001...61599999
70000001...72799999
73000001...73699999
29000001...29099999
74000001...74899999
65000001...65109999
30000001...31999999
79000001...79129999
78000001...78109999
66000001...66999999
58000001...58099999
50000001...52999999
64000001...64099999
80000001...82999999
20000001...23799999
59000001...59139999
76800001...76849999
69300001...69339999
90000001...91999999
88000001...88099999
49000001...49099999
01000001...05999999
08000000...08499999
77000001...77299999

Feito o cadastro, clique no botão Adicionar método de entrega, e escolha as opções que aparecem. No nosso caso a loja usa PAC, SEDEX e Retirar no Local.

Agora vamos fazer com que o PAC tenha frete grátis para as capitais, mas antes devemos identificar o ID da instância do método de pagamento. Abra o método de pagamento PAC que foi cadastrado a pouco. Verifique no endereço da página qual o numero final da instância. Geralmente a URL é desta forma:

wp-admin/admin.php?page=wc-settings&tab=shipping&instance_id=6

O numero 6 indica que a instância do método de pagamento cadastrado é do PAC. Verifique a sua.

Volte para o início da Área de Entrega e verifique se a Zona cadastrada está em cima de Brasil.

Se caso não estiver, arraste para cima. Para fazer esta operação passe o mouse nos 3 risquinhos na lateral esquerda do item, o ponteiro do mouse muda o formato, assim você consegue arrastar o item para cima e para baixo.

Isso é necessário, pois a primeira verificação deve identificar as capitais e depois o resto das cidades do Brasil. (Se caso não tenha cadastrado o Item Brasil, cadastre e selecione apenas Brasil na “Regiões da área” e os métodos de pagamentos)

Agora vamos colocar o código para fazer uma verificação e mostrar o Frete Grátis. Abra o functions.php de seu tema para podermos incluir um trecho de código.

/**************************************************************************************
FRETE GRÁTIS VIA PAC ACIMA DE R$300,00 PARA CAPITAIS APENAS
hospedagemwordpresspro.com.br
**************************************************************************************/ 

function custom_woocommerce_correios_shipping_methods( $rate, $instance_id ) {
    
    // Altere aqui o numero da instância cadastrada.
    if ( 6 == $instance_id ) {
        // Verifica se o total é maior ou igual a 300 reais.
        if ( isset( WC()->cart->subtotal ) && 300 <= WC()->cart->subtotal ) {
            $rate['cost'] = 0;
        }
    }
    
    return $rate;
}
add_filter( 'woocommerce_correios_correios-pac_rate', 'custom_woocommerce_correios_shipping_methods', 10, 2 );

Se caso sua instância for outro número, no código, altere o numero 6 para o numero do seu cadastro.

No nosso exemplo, ele verifica o total do carrinho de compras, se é igual ou maior que 300 reais. Caso você queira um valor diferente, altere o valor 300 para o numero que você gostaria de dar o frete grátis.

Feito isso teste seu carrinho de compras colocando CEPs de Capitais e outras cidades e modifique os valores de compra, para identificar se esta funcionando tudo corretamente.

Espero que este tutorial tenha ajudado a resolver este problema, e boas vendas!

Gostou do Assunto? Compartilhe com seus amigos!

8 comentários em “Calcular frete woocommerce de acordo com valor da compra – Frete grátis”

  1. Olá
    Boa tarde
    Tudo bem?
    Já comprei alguns plugins seus.
    Tem como a taxa fixa eu definir um valor mínimo de compra?
    Estou tentando de tudo e não acho uma solução.

    Responder
    • Olá Jonas

      Para definir apenas um valor mínimo de compra, você pode usar um plugin no WordPress. Procure nos plugins do WP por “woocommerce minimum order”. Tem alguns bem interessantes que vão te ajudar.

      Boa sorte!

      Responder
  2. Olá,
    tenho um website com uma área de envio definido, gostaria de cobrar uma valor para compras abaixo de 100 e outro para compras acima de 100. Daria para usar este método acima?
    Como eu faria?

    Responder
    • Olá Sergio

      Você pode criar dois verificadores


      // Verifica se o total é menor ou igual a 100 reais.
      if ( isset( WC()->cart->subtotal ) && 100 >= WC()->cart->subtotal ) {
      // -- Regra do negócio --
      }
      // Verifica se o total é maior ou igual a 101 reais.
      else ( isset( WC()->cart->subtotal ) && 101 <= WC()->cart->subtotal ) {
      // -- Regra do negócio --
      }

      Responder
      • Olá Sergio, estou com dificuldades para encontrar as variaveis que utilizaria pra resolver esse exato problema no meu site, como eu chamaria as taxas fixas, por exemplo: if (cart = 101) = administrado pelos correios;

        Espero que consiga me ajudar obrigado

        Responder
        • Olá Miguel

          Eu não entendi muito bem o que vc precisa.
          Mas o plugin dos correios teve modificações, se a função é a mesma, você pega este dado pelo número da instância que você configurou lá no Woocommerce “Área de entrega”, no exemplo, eu busquei o PAC, mas vc pode cadastrar “taxa fixa” e verificar o número da instância que fica na URL.

          Responder

Deixe um comentário

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.