Como corrigir o conflito de JavaScript entre Ultimate Addons e WP Rocket
O que é conflito de JavaScript entre Ultimate Addons e WP Rocket?
O conflito de JavaScript entre o Ultimate Addons for Elementor (UAE) e o WP Rocket acontece quando as otimizacoes de JavaScript do WP Rocket interferem na ordem de carregamento e na execução do script de frontend do plugin. O UAE registra o handle uael-frontend-script e injeta um objeto de configuração chamado UAELParams (via wp_localize_script) do qual os widgets dependem para inicializar. Widgets interativos como Modal Popup, Countdown Timer, Nav Menu, Tabs e Before/After Slider so funcionam quando esse script executa na ordem certa, depois do jQuery e com o UAELParams já definido. Quando o WP Rocket segura, combina ou adia esse script, o visitante recebe a página com o widget renderizado mas morto, enquanto o editor do Elementor continua mostrando tudo certo.
Como identificar
- Widgets interativos do Ultimate Addons (Modal Popup, Countdown Timer, Nav Menu, Tabs, Before/After Slider) aparecem na página mas não respondem ao clique ou ao toque no frontend, enquanto o editor do Elementor mostra o widget funcionando
- No console do navegador aparece o erro ‘uael is not defined’, ‘UAELParams is not defined’ ou ‘Cannot read properties of undefined’ apontando para o uael-frontend-script.js
- O menu do Nav Menu não abre no mobile, o Countdown Timer congela em zero e o Modal Popup não dispara, mesmo com o HTML do widget presente no código-fonte
- Os widgets voltam a funcionar logo após limpar o cache do WP Rocket e param de novo na próxima visita, quando a página otimizada e servida de novo
- O problema desaparece com o WP Rocket desativado ou com o Safe Mode ligado, e volta ao reativar as otimizacoes de JavaScript
- No código-fonte da página o uael-frontend-script.js aparece com o atributo type=rocket-loader ou data-rocket-defer, em vez de carregar normalmente
Como prevenir
- Mantenha o handle uael-frontend e os prefixos uael fixos nas exclusoes de Delay, Combine e Defer do WP Rocket para que novas geracoes de cache nunca segurem o script dos widgets interativos
- Sempre que atualizar o Ultimate Addons ou o Elementor, regenere os assets do plugin e so depois limpe o cache do WP Rocket, nessa ordem, para evitar caminho de script desatualizado
- Após qualquer mudanca nas otimizacoes, teste o frontend em uma janela anonima com cache limpo e abra o console para confirmar que não ha erro uael is not defined antes do deploy
- Ative o Safe Mode do WP Rocket em uma página de teste para confirmar que a quebra vem do cache antes de alterar as otimizacoes de JavaScript
Causa
- A opção Delay JavaScript Execution (aba File Optimization) segura o uael-frontend-script.js até a primeira interacao do usuário, e widgets que inicializam no carregamento da página, como Countdown Timer e Nav Menu, nunca recebem o evento de inicializacao.
- A opção Combine JavaScript files junta o uael-frontend-script.js com outros scripts e quebra a ordem em relacao ao wp_localize_script, deixando o objeto UAELParams indefinido e gerando 'uael is not defined' no console.
- A opção Load JavaScript Deferred adia o jQuery do qual o uael-frontend-script.js depende, e o script do UAE executa antes da dependencia estar pronta, travando a inicializacao dos widgets.
- A opção Remove Unused CSS classifica o CSS condicional por widget do Ultimate Addons como não utilizado e o remove do inline wpr-usedcss, deixando o widget sem estilo além de sem comportamento.
- O cache foi gerado antes de o Ultimate Addons regenerar seus assets após uma atualização do plugin ou do Elementor, servindo uma versão da página que aponta para um uael-frontend-script.js antigo que já não existe no servidor.
- A integração do Cloudflare no WP Rocket aplica o Rocket Loader sobre o uael-frontend-script.js, reordenando a execução do script e impedindo que o UAELParams carregue antes do widget.
Como resolver
- Confirme que a causa e o WP Rocket: No painel, abra o Dashboard do WP Rocket e force a limpeza e a pre-carga do cache. Se os widgets do Ultimate Addons voltarem a responder e quebrarem de novo na próxima visita, o conflito esta nas otimizacoes de JavaScript, e não no plugin em si.
Settings -> WP Rocket -> Dashboard -> Clear and preload cache - Exclua o script do Ultimate Addons do Delay JavaScript Execution: Abra a aba de otimização de arquivos, va até a área de Delay JavaScript Execution e adicione o caminho e o handle do script do plugin no campo de exclusão, um por linha. Salvar limpa o cache e faz o script carregar normalmente, e os widgets que inicializam no load voltam a funcionar.
Settings -> WP Rocket -> File Optimization -> Delay JavaScript Execution -> Excluded files /uael/assets/js/uael-frontend.js uael-frontend-script UAELParams - Exclua o script do Combine e do Defer: Ainda em File Optimization, adicione o mesmo script na lista de exclusão do Combine JavaScript files e do Load JavaScript Deferred. Isso preserva a ordem em relacao ao jQuery e ao objeto de configuração injetado pelo wp_localize_script, e elimina o erro uael is not defined no console.
Settings -> WP Rocket -> File Optimization -> Combine JavaScript files -> Excluded JavaScript files uael-frontend Settings -> WP Rocket -> File Optimization -> Load JavaScript deferred -> Excluded JavaScript files uael-frontend - Proteja o CSS condicional do Ultimate Addons no Safelist: Na área de Optimize CSS delivery, cole no campo de CSS Safelist os prefixos de classe do plugin, um por linha, para que o Remove Unused CSS nunca remova o estilo dos widgets ao regenerar o Used CSS. Salvar regenera o CSS preservando essas regras.
Settings -> WP Rocket -> File Optimization -> Optimize CSS delivery -> CSS Safelist uael .uael- .elementor-widget-uael - Regenere os assets do plugin e limpe o cache na ordem certa: Va nas configurações do Ultimate Addons e use a regeneracao de arquivos para reconstruir os assets de frontend, depois volte ao WP Rocket e limpe o cache. Recompilar no plugin antes de limpar o cache evita que o WP Rocket guarde um caminho de script desatualizado.
Elementor -> Settings -> Ultimate Addons -> Regenerate Assets / Files Settings -> WP Rocket -> Dashboard -> Clear and preload cache - Se usar Cloudflare, desligue o Rocket Loader para o script: Quando a integração do Cloudflare estiver ativa, o Rocket Loader pode reordenar o uael-frontend-script.js. Crie uma Page Rule no Cloudflare desligando o Rocket Loader na área do site afetada, ou desative o Rocket Loader globalmente em Speed -> Optimization, e limpe o cache do Cloudflare.
Cloudflare -> Speed -> Optimization -> Rocket Loader -> Off Cloudflare -> Caching -> Configuration -> Purge Everything
/uael/assets/js/uael-frontend.js
uael-frontend-script
uael-frontend
UAELParams
uael
.uael-
.elementor-widget-uael














