WooCommerce: Deixar o método de entrega PAC dos Correios gratuito

Uma vez ou outra vejo pessoas fazendo entrega utilizando o PAC dos Correios sem cobrar nada e utilizando plugin WooCommerce Correios para calcular o frete para todos os métodos de pagamento.
Geralmente para fazer algo assim é simples, pois é possível desativar o método PAC do plugin e configurar o método de entrega gratuita do WooCommerce.

Entretanto o WooCommerce Correios tem um plus que é exibir uma data estimada de entrega, que não é possível fazer isso com o método de entrega gratuita nativo.

Fazer isso é extremamente simples, uma vez que o WooCommerce Correios possui o filtro woocommerce_correios_shipping_methods que é utilizando tanto no simulador de entrega na página do pedido como também na hora de pegar os valores e exibir no carrinho e na finalização.

Segue o código necessário para fazer isso:

https://gist.github.com/claudiosanches/6724ec08c37bc95741aa1db210450245

De resto é só deixar a imaginação fluir, como por exemplo dar frete grátis pelo PAC apenas quando o pedido tem um valor mínimo de 100 reais:

https://gist.github.com/claudiosanches/9d0d1a0808da3dd8994421b6e457e903

Ou frete grátis apenas para uma área de entrega, no caso de ter uma área de entrega para determinados estados (por exemplo, apenas São Paulo e Rio de Janeiro):

https://gist.github.com/claudiosanches/4c0fcbfe859e19b0b639768596a1f881

Neste último exemplo observe que é passado o $instance_id que é o identificador da instancia do método de pagamento, é possível encontrar na URL ao editar o método escolhido, como por exemplo wp-admin/admin.php?page=wc-settings&tab=shipping&instance_id=99.

Nota:

  • Código atualizado em 29 de Dezembro de 2016.

5 Comentários

  1. Jefferson

    Salve, Cláudio!
    Cara, vi que vc fez uma condição para o subtotal usando WC()->cart->subtotal
    E se eu quiser oferecer frete grátis para uma região, como SP, por exemplo? Tem como fazer isso via código ou só pela opção nativa do Woocommerce mesmo?

    • Claudio Sanches

      Acabei de adicionar um exemplo ensinando a dar frete grátis por estado, deve resolver já seu problema.

      • Jefferson

        Valeeeeu!
        Cara, demorou pra você criar um curso de wordpress para jovens padawans se tornarem master jedi.

        Grande abraço

  2. Maria Fernanda

    Oi Claudio! Eu gostaria de colocar frete grátis para valor acima de 100 reais e para determinados estados, com a estimativa de tempo. Como faço isso?

    Ps.: Esse arquivo functions.php é aquele que está na pasta raiz do tema?

    Abraços!

    • Claudio Sanches

      Como eu falei, são exemplos para dar ideias para vocês de como fazer, já tem exemplos mais do que suficiente para você conseguir fazer o que você quer.

      Ps.: Esse arquivo functions.php é aquele que está na pasta raiz do tema?

      Não.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *