FernandoAcosta.Netdocs

Mostrar campos de país, estado ou cidade na calculadora de frete

2 min de leituraAtualizado há 5 dias

A Calculadora de Frete Otimizada oculta País e Estado da calculadora por padrão — esse é o ponto principal do plugin: deixar só o CEP, já que o estado é detectado automaticamente.

Em alguns casos você quer trazer um ou mais desses campos de volta:

  • Sua loja vende fora do Brasil (precisa de País).
  • Você usa um sistema de frete que exige seleção manual de Estado independente do CEP (raro).
  • Você quer mostrar a cidade como campo editável no carrinho (geralmente pra clientes empresariais).

Os filtros disponíveis

Filtro Campo controlado Padrão do plugin
woocommerce_shipping_calculator_enable_country País false (oculto)
woocommerce_shipping_calculator_enable_state Estado false (oculto)
woocommerce_shipping_calculator_enable_city Cidade false (oculto)

Os três filtros são do WooCommerce (não do plugin), e o plugin os força pra false na inicialização. Pra trazer um campo de volta, retorne true com prioridade maior que 10 (a do plugin).

Exemplo: mostrar País novamente

Se você vende pro Brasil e Argentina, traga o País de volta:

add_filter( 'woocommerce_shipping_calculator_enable_country', '__return_true', 20 );

Exemplo: mostrar Estado novamente

add_filter( 'woocommerce_shipping_calculator_enable_state', '__return_true', 20 );
Mostrar Estado anula a detecção automática

Se você forçar o Estado a aparecer, o plugin ainda vai tentar detectar pelo CEP — mas o cliente vai conseguir sobrescrever. Se ele selecionar o estado errado, o frete será calculado pro estado errado.

Exemplo: mostrar Cidade

add_filter( 'woocommerce_shipping_calculator_enable_city', '__return_true', 20 );

Combina bem com a opção Identificar cidade automaticamente desligada — o cliente preenche manualmente.

Exemplo: mostrar todos os três

add_filter( 'woocommerce_shipping_calculator_enable_country', '__return_true', 20 );
add_filter( 'woocommerce_shipping_calculator_enable_state', '__return_true', 20 );
add_filter( 'woocommerce_shipping_calculator_enable_city', '__return_true', 20 );

Equivale a desligar boa parte do plugin pra esse cliente. Útil só em casos muito específicos.

Exemplo: mostrar País só pra usuários estrangeiros

Se você quer manter o fluxo limpo pra brasileiros mas deixar opção pra clientes que se identificam como fora:

add_filter( 'woocommerce_shipping_calculator_enable_country', function() {
    $user = wp_get_current_user();
    return $user->ID && get_user_meta( $user->ID, 'is_international', true );
}, 20 );

Onde colocar o código

functions.php do tema filho, plugin de snippets ou plugin próprio. Nunca dentro do diretório do plugin.

Filtros relacionados

Foi útil?