# Como corrigir o Countdown Timer que não funciona no Ultimate Addons

O Countdown Timer do Ultimate Addons não funciona quando o cache de página congela a contagem regressiva, o JavaScript do widget é adiado ou minificado por engano, ou a Due Date e o fuso horário do WordPress estão configurados de forma inconsistente.

## O que é Countdown Timer do Ultimate Addons não funciona?

O Countdown Timer é o widget de contagem regressiva do Ultimate Addons for Elementor (UAE), usado para criar urgência em ofertas, lançamentos e eventos. Segundo a documentação oficial, ele oferece três tipos de timer (entre eles a data fixa e o modo evergreen), controle de Due Date, rótulos personalizados, ações pós-expiração como ocultar, redirecionar ou exibir uma mensagem, e a opção de mostrar apenas as unidades de tempo desejadas. A contagem em si roda no navegador via JavaScript: o servidor entrega a data alvo e o script faz o decremento segundo a segundo no lado do cliente.

É exatamente esse desenho que explica por que o Countdown Timer do Ultimate Addons não funciona em certos cenários. Se o JavaScript do widget não carrega, ou carrega depois de um erro de console, a contagem nunca inicia e o timer fica parado no valor inicial. Se um plugin de cache serve uma versão estática da página, o instante salvo no HTML congela e a contagem regressiva passa a exibir uma data errada. E no modo evergreen, que depende de um cookie por visitante para fixar o fim da contagem, o bloqueio desse cookie faz o timer reiniciar a cada carregamento.

## Como identificar

- A contagem regressiva aparece com os números, mas fica travada e não decrementa nenhum segundo ao carregar a página.
- No console do navegador surge um erro de JavaScript ('Uncaught ReferenceError' ou 'is not defined') logo ao abrir a página com o Countdown Timer.
- O timer evergreen volta ao tempo cheio toda vez que a página é recarregada, em vez de continuar de onde parou para aquele visitante.
- O Countdown Timer some por completo no front-end, mesmo aparecendo normalmente no editor do Elementor.
- A contagem mostra uma data ou um horário diferente do configurado na Due Date, como se estivesse adiantada ou atrasada em algumas horas.

**Antes de começar:** Antes de mexer nas regras de cache, nas otimizações de JavaScript ou desativar plugins em produção, faça um backup do site (arquivos e banco de dados) ou teste primeiro em um ambiente de staging, para poder reverter caso o front-end quebre.

## Como prevenir

- Mantenha as páginas com Countdown Timer fora do cache estático ou use cache curto, já que a contagem precisa de HTML atualizado para iniciar em tempo real.
- Ao ativar otimização de JavaScript no plugin de cache, sempre exclua o script do Ultimate Addons e revalide o front-end antes de publicar.
- Configure o fuso horário do WordPress pela cidade, não por um deslocamento UTC, para que a Due Date e a contagem usem o mesmo horário.
- Classifique os cookies do próprio site como funcionais no banner de consentimento para não quebrar o comportamento por visitante do timer evergreen.
- Mantenha o Elementor e o Ultimate Addons for Elementor sempre na versão estável mais recente, validando em staging antes de atualizar em produção.

Erros relacionados

- [Como corrigir o Ultimate Addons que não carrega widgets no Elementor](https://full.services/wp-fixer/corrigir-widgets-nao-carregam-ultimate-addons/)
- [Como corrigir o Modal Popup que não abre no Ultimate Addons](https://full.services/wp-fixer/corrigir-modal-popup-ultimate-addons/)
- [Como corrigir o conflito de JavaScript entre Ultimate Addons e WP Rocket](https://full.services/wp-fixer/corrigir-conflito-js-ultimate-addons-wp-rocket/)

## Causa

- Um plugin de cache (como o WP Rocket ou LiteSpeed Cache) salvou uma versão estática da página: o instante inicial da contagem fica congelado no HTML servido e o timer passa a exibir uma data errada em vez de contar em tempo real.
- A otimização de JavaScript do plugin de cache adiou, combinou ou minificou o script do Countdown Timer junto com o JS do Elementor, quebrando a inicialização do widget e deixando os números parados no valor inicial.
- O modo evergreen depende de um cookie por visitante para fixar o fim da contagem; quando o cookie é bloqueado pelo navegador ou descartado por um plugin de consentimento, o timer reinicia a contagem a cada novo carregamento da página.
- O fuso horário em Configurações Gerais do WordPress está em UTC ou diferente do fuso da Due Date informada no widget, fazendo a contagem aparecer adiantada ou atrasada em relação ao horário esperado.
- Um conflito de JavaScript com outro plugin ou addon do Elementor interrompe a execução do script da página antes do Countdown Timer inicializar, deixando o widget travado ou ausente no front-end.

## Como resolver

1. Exclua a página do cache e da otimização de JS: No seu plugin de cache, adicione a URL da página com o Countdown Timer à lista de exclusão de cache e remova o handle do script do Ultimate Addons das otimizações de adiar e combinar JavaScript. Isso garante que o navegador receba o HTML fresco e execute o script do widget na ordem correta.

```
Painel WP -> WP Rocket -> Cache Avançado -> Nunca cachear (URLs)
Adicione o caminho da página, ex.: /promo-do-mes/
Painel WP -> WP Rocket -> Otimização de Arquivos -> exclua 'uael-frontend' de Adiar JS e Combinar JS
```

2. Confira o tipo de timer e a Due Date no widget: Abra o widget no Elementor e confirme o tipo de contagem (data fixa ou evergreen) e a Due Date. Para data fixa, defina uma data e hora no futuro; para evergreen, ajuste o intervalo de horas/minutos da campanha. Uma Due Date no passado faz o timer já nascer zerado.

```
Editor do Elementor -> selecione o widget Countdown Timer -> aba Conteúdo
Confira o campo Type (Fixed Date ou Evergreen)
Em Fixed Date, defina a Due Date para uma data e hora futuras
```

3. Alinhe o fuso horário do WordPress: Em Configurações Gerais, troque o fuso de UTC pela sua cidade, para que a contagem use o mesmo horário da Due Date e pare de aparecer adiantada ou atrasada. Salve e recarregue a página para conferir.

```
Painel WP -> Configurações -> Geral -> Fuso horário
Selecione a cidade correta (ex.: São Paulo) em vez de um deslocamento UTC fixo
Clique em Salvar alterações e recarregue a página do timer
```

4. Libere o cookie do timer evergreen: Se você usa o modo evergreen e a contagem reinicia a cada visita, verifique se o navegador ou o banner de consentimento de cookies está bloqueando os cookies do site. Permita os cookies funcionais do próprio domínio para o timer fixar o fim da contagem por visitante.

```
Navegador -> Configurações do site -> permita cookies para o seu domínio
Plugin de consentimento -> classifique os cookies do site como Necessários/Funcionais
Teste em uma janela anônima limpa e recarregue a página duas vezes para validar
```

5. Isole o conflito de JavaScript: Se o erro persistir, abra o console do navegador para ler a mensagem exata, depois desative os outros plugins um a um e troque para um tema padrão, recarregando o editor e o front-end a cada teste, até identificar o item que interrompe o script da página.

```
Navegador -> F12 -> aba Console -> recarregue e leia o erro exato
Painel WP -> Plugins -> desative os demais plugins um a um
Painel WP -> Aparência -> Temas -> ative um tema padrão e teste novamente
```


## Código

```php
<?php
/**
 * Mantém o front-end do Ultimate Addons fora da combinação/adiamento de JS
 * do WP Rocket nas páginas com Countdown Timer, evitando que o script
 * do widget seja quebrado pela otimização.
 */
add_filter( 'rocket_exclude_js', 'full_uael_excluir_js_countdown' );
function full_uael_excluir_js_countdown( $excluded ) {
    $excluded[] = '/wp-content/plugins/header-footer-elementor/(.*).js';
    return $excluded;
}

add_filter( 'rocket_delay_js_exclusions', 'full_uael_excluir_delay_countdown' );
function full_uael_excluir_delay_countdown( $excluded ) {
    $excluded[] = 'uael-frontend';
    return $excluded;
}
```

## Perguntas frequentes

### Por que o Countdown Timer do Ultimate Addons fica travado e não conta

Quase sempre é porque o JavaScript do widget não inicializou: ou um plugin de cache adiou e combinou o script, ou há um erro de JavaScript de outro plugin no console. Exclua o script 'uael-frontend' das otimizações de JS e recarregue a página.

### Por que a contagem regressiva mostra uma data ou horário errado

O cache de página costuma congelar o instante inicial salvo no HTML, e o fuso horário em UTC desalinha a contagem da Due Date. Adicione a página à exclusão de cache e ajuste o fuso do WordPress para a sua cidade em Configurações Gerais.

### Por que o timer evergreen reinicia toda vez que recarrego a página

O modo evergreen usa um cookie por visitante para guardar o fim da contagem. Se o navegador ou o banner de consentimento bloqueia esse cookie, o timer não tem onde fixar o tempo e reinicia. Libere os cookies funcionais do seu domínio.

### Como impedir que o cache quebre o Countdown Timer

Adicione a URL da página à lista de páginas nunca cacheadas do seu plugin de cache e exclua o script do Ultimate Addons das otimizações de adiar e combinar JavaScript. Assim o navegador recebe o HTML fresco e executa o timer corretamente.

### O Countdown Timer aparece no editor mas some no site, por quê

Isso indica que o script ou o estilo do widget não está sendo carregado no front-end, geralmente por minificação agressiva ou conflito de outro plugin. Desative os plugins um a um e teste com um tema padrão para isolar o causador.

### Qual a diferença entre o timer de data fixa e o evergreen

O de data fixa conta até uma Due Date única igual para todos os visitantes, ideal para um lançamento. O evergreen inicia uma contagem própria por visitante, baseada em um intervalo, mantida por cookie, útil para campanhas perenes de urgência.

### O que fazer quando a contagem chega a zero

O widget permite definir a ação pós-expiração: ocultar o timer, redirecionar o visitante ou exibir uma mensagem, segundo a documentação oficial. Configure essa ação na aba do widget para a página se comportar como esperado ao fim da contagem.

**Fonte:** [Ultimate Addons for Elementor — Countdown Timer Widget](https://ultimateelementor.com/widgets/countdown-timer/)
