Mostrar avisos de pagamento por IP no WooCommerce

Autor:Lisa Farrell · 2026-06-01

Lojas WooCommerce podem mostrar avisos de pagamento diferentes conforme a região do visitante. O PHP insere o contêiner, o navegador obtém informações de IP e adapta a mensagem.

Explicação da API

A chamada no navegador verifica o IP do visitante e retorna o IP, país, região e cidade dele. É adequada para conteúdo regional.

{"ip":"185.220.236.7","country":"TW","region":"Taiwan","city":"Taipei"}

Cenários de aplicação

Esses cenários mostram o valor da interface de informações IP e separam claramente IP do servidor e IP do visitante.

  • Esses cenários mostram o valor da interface de informações IP e separam claramente IP do servidor e IP do visitante.
  • Mostrar avisos de pagamento por IP no WooCommerce
  • Explicação da API
  • Recomendações de SEO e UX

Lógica de implementação

Antes de implementar, identifique quem faz a requisição: requisições do servidor retornam IP do servidor, requisições do navegador retornam IP do visitante.

  • Antes de implementar, identifique quem faz a requisição: requisições do servidor retornam IP do servidor, requisições do navegador retornam IP do visitante.
  • A chamada no navegador verifica o IP do visitante e retorna o IP, país, região e cidade dele. É adequada para conteúdo regional.
  • Todos os exemplos abaixo usam diretamente https://my.ipin.io/info, com comentários e textos de interface localizados.
  • O conteúdo padrão deve permanecer completo e legível, enquanto o conteúdo regional atua como melhoria. Buscadores rastreiam conteúdo estável e a página continua utilizável se a API falhar.

Exemplo de código

Todos os exemplos abaixo usam diretamente https://my.ipin.io/info, com comentários e textos de interface localizados.

functions.php / plugin

function ipin_geo_payment_notice_html() {
    $box_id = 'ipin-payment-notice-' . wp_generate_uuid4();
    ob_start();
    ?>
    <div id="<?php echo esc_attr($box_id); ?>" class="woocommerce-info ipin-payment-notice">Bem-vindo. Este é o conteúdo padrão.</div>
    <script>
    (async function () {
      const el = document.getElementById("<?php echo esc_js($box_id); ?>");
      const defaultText = "Bem-vindo. Este é o conteúdo padrão.";
const contentMap = { TW: "Conteúdo para visitantes de Taiwan", US: "Conteúdo para visitantes dos Estados Unidos", JP: "Conteúdo para visitantes do Japão" };
try {
  // Chamada no navegador para /info: detecta o IP do visitante.
  const info = await fetch("https://my.ipin.io/info").then(res => res.json());
  el.textContent = contentMap[info.country] || defaultText;
} catch (e) {
  // Manter o valor padrão se a requisição da API falhar.
  el.textContent = defaultText;
}
    })();
    </script>
    <?php
    return ob_get_clean();
}
add_action('woocommerce_review_order_before_payment', 'ipin_geo_payment_notice');
function ipin_geo_payment_notice() { echo ipin_geo_payment_notice_html(); }
add_shortcode('geo_payment_notice', 'ipin_geo_payment_notice_shortcode');
function ipin_geo_payment_notice_shortcode() { return ipin_geo_payment_notice_html(); }

Shortcode

[geo_payment_notice]

Recomendações de SEO e UX

O conteúdo padrão deve permanecer completo e legível, enquanto o conteúdo regional atua como melhoria. Buscadores rastreiam conteúdo estável e a página continua utilizável se a API falhar.

Erros comuns

Os pontos abaixo afetam a precisão do artigo, a usabilidade do código e a credibilidade da explicação da API.

  • Os pontos abaixo afetam a precisão do artigo, a usabilidade do código e a credibilidade da explicação da API.
  • O conteúdo padrão deve permanecer completo e legível, enquanto o conteúdo regional atua como melhoria. Buscadores rastreiam conteúdo estável e a página continua utilizável se a API falhar.
  • Antes de implementar, identifique quem faz a requisição: requisições do servidor retornam IP do servidor, requisições do navegador retornam IP do visitante.
  • Esses cenários mostram o valor da interface de informações IP e separam claramente IP do servidor e IP do visitante.

Resumo

A chamada no navegador verifica o IP do visitante e retorna o IP, país, região e cidade dele. É adequada para conteúdo regional.

Perguntas frequentes

As perguntas abaixo foram escritas especificamente para este artigo e estão diretamente ligadas à implementação.

Pergunta:Por que distinguir o lado da requisição?
Resposta:Porque chamada do servidor representa o servidor, e chamada do navegador representa o visitante.
Pergunta:Por que manter conteúdo padrão?
Resposta:Ele protege SEO, primeira renderização e casos em que a API não responde.
Pergunta:Posso adicionar mais países?
Resposta:Sim, adicionando códigos de país à tabela de mapeamento.
Pergunta:A lógica altera o backend?
Resposta:Não, a menos que você adicione lógica server-side separada.
Pergunta:O que fazer se a API falhar?
Resposta:A página deve manter conteúdo, link ou mensagem padrão.