Skip to main content
BIBLIOTECA DE SNIPPETS

Abrir os termos do checkout num novo separador — WooCommerce e Elementor

Abre a página dos termos num novo separador no checkout clássico ou no widget Checkout do Elementor, mantendo o formulário de compra aberto.

Antes de começares

Dificuldade
Intermédio
Requisitos
WooCommerce com página de termos configurada. Checkout clássico ou widget Checkout do Elementor Pro. O link deve conservar a classe woocommerce-terms-and-conditions-link.
Local de aplicação
JavaScript no rodapé, apenas na página de checkout. No Elementor Pro, usa Código personalizado com localização no fim do body e condição para o checkout; envolve o código em <script> e </script> nesse editor.

Como aplicar

  1. Confirma que a página de termos está selecionada nas definições avançadas do WooCommerce e que o link do checkout aponta para essa página.
  2. Adiciona o JavaScript no rodapé, com carregamento limitado ao checkout. Num campo que aceita JavaScript puro, cola sem as tags script.
  3. No Elementor Pro, podes usar Código personalizado no fim do body; nesse editor, envolve o código em tags script e aplica a condição apenas ao checkout.
  4. Guarda, limpa a cache relevante e abre o checkout fora do editor. O código usa um evento delegado, pelo que não precisa de voltar a ser instalado após a atualização AJAX do checkout.

Como confirmar o resultado

  • Clica no link: os termos devem abrir num novo separador e os dados do checkout devem permanecer preenchidos.
  • Altera a morada ou o método de envio e volta a testar o link após a atualização do checkout.
  • Usa Tab e Enter para abrir o link. Confirma também que aceitar os termos continua obrigatório.
  • Testa separadamente no checkout clássico e no widget Checkout do Elementor; não é necessário ter os dois na mesma página.

Compatibilidade e limites

Destina-se ao checkout clássico e ao widget Checkout do Elementor quando usam o link padrão do WooCommerce. Não cobre o bloco Checkout do WooCommerce nem checkouts de terceiros que alterem o HTML. A confirmação em ambos os ambientes ainda está pendente.

Como desfazer

Desativa ou remove apenas este snippet e limpa a cache relevante. No caso do CSS, remove as regras adicionadas.

Referências técnicas

Código do snippet

Faz uma cópia de segurança e testa num ambiente de desenvolvimento antes de aplicar no site principal. Consulta o local de aplicação indicado neste guia.

JavaScript
(function () {
  if (window.edTermsNewTabReady) return;
  window.edTermsNewTabReady = true;

  document.addEventListener('click', function (event) {
    if (!(event.target instanceof Element)) return;
    const link = event.target.closest('a.woocommerce-terms-and-conditions-link');
    if (!link || !link.closest('form.checkout, .elementor-widget-woocommerce-checkout')) return;
    const href = link.getAttribute('href');
    if (!href || href.trim().startsWith('#')) return;
    const url = new URL(href, window.location.href);
    if (!['http:', 'https:'].includes(url.protocol)) return;

    link.target = '_blank';
    link.relList.add('noopener', 'noreferrer');
    // Bloqueia a abertura inline do WooCommerce, preservando a navegação do link.
    event.stopImmediatePropagation();
  }, true);
})();

Está Daqui
Snippets, tutoriais e recursos práticos para WordPress, Elementor e WooCommerce. Soluções para criar, personalizar e melhorar os teus projetos.

Informação e Contactos

© 2026 Está Daqui. Todos os direitos reservados.
Feito para partilhar soluções.