Como corrigir scripts do Tutor LMS removidos pelo Perfmatters no WordPress
O que é scripts do Tutor LMS removidos pelo Perfmatters?
O Perfmatters e um plugin de performance que reduz o peso das páginas controlando quais scripts e estilos carregam. Dois recursos dele costumam atingir o Tutor LMS: o Script Manager, que permite desativar arquivos JavaScript e CSS por página, tipo de post ou em todo o site; e o Delay JavaScript, que adia a execução do JavaScript até o primeiro toque, rolagem ou clique do visitante. Quando esses recursos alcançam os scripts do Tutor LMS, a interface da aula carrega visualmente, mas as funções interativas param.
O Tutor LMS depende fortemente de JavaScript e de chamadas AJAX para funcionar: o player de vídeo da aula, o envio e a correção do quiz, a marcacao de aula concluida, a barra de progresso do curso e o checkout dos cursos pagos. Se o Perfmatters desativa o handle do Tutor LMS no Script Manager ou inclui esses arquivos no Delay JavaScript sem excecao, o aluno ve a página, mas os botões não respondem, o quiz não envia e o vídeo não toca. O problema concentra-se nas páginas de curso, licao e quiz, justamente onde o conteúdo dinâmico vive.
Como identificar
- O player de vídeo da aula não carrega ou fica preto, e o botão de marcar a aula como concluida não responde ao clique dentro da página de licao do Tutor LMS.
- O quiz abre mas trava ao enviar: o botão ‘Submit Quiz’ não faz nada ou a página recarrega sem registrar a resposta.
- A barra de progresso do curso fica parada e o aluno não avança para a próxima aula mesmo concluindo a atual.
- No console do navegador (F12) aparece ‘Uncaught ReferenceError’ ou ‘$ is not defined’ apontando para arquivos do diretório /wp-content/plugins/tutor/.
- Os botões de adicionar curso ao carrinho ou de inscricao (enroll) ficam inativos depois de ativar o Script Manager ou o Delay JavaScript no Perfmatters.
Como prevenir
- Sempre que ativar o Script Manager do Perfmatters, teste imediatamente uma página de curso, uma de licao e um quiz logado como aluno antes de salvar as regras em producao.
- Mantenha uma lista de exclusoes fixa no Delay JavaScript com ‘tutor’ e ‘jquery’, para que novas otimizacoes não voltem a adiar os scripts essenciais da sala de aula.
- Evite desativar scripts em ‘Everywhere’ sem mapear os post types do Tutor LMS (curso, licao e quiz são tipos separados) e use excecoes por Current URL ou Post Type.
- Ative uma otimização de cada vez no Perfmatters e valide as funções interativas do Tutor LMS a cada passo, em vez de ligar vários recursos de performance ao mesmo tempo.
Causa
- No Script Manager do Perfmatters, o handle do JavaScript do Tutor LMS (por exemplo tutor-front ou tutor) foi desativado para a página de curso, ou foi desativado em 'Everywhere' sem adicionar a página de aula como excecao, removendo a interatividade da sala.
- O recurso Delay JavaScript do Perfmatters esta no modo 'Delay All Scripts' e adia os arquivos do Tutor LMS até uma interacao do usuário, fazendo o player de vídeo e o quiz não inicializarem no carregamento da página.
- O jQuery do nucleo do WordPress foi desativado ou adiado pelo Perfmatters, e como os scripts do Tutor LMS dependem do jQuery, eles quebram com 'jQuery is not defined' antes de rodar.
- A regra do Script Manager foi criada por tipo de post errado: o JavaScript do Tutor LMS foi mantido apenas no post type 'courses' mas desativado nas páginas de licao (lesson) e quiz, que são post types separados no Tutor LMS.
- O AJAX admin-ajax do Tutor LMS, usado para enviar quiz e gravar progresso, depende de um script que foi adiado pelo Delay JavaScript, entao a chamada AJAX nunca dispara enquanto o visitante não interage com a página.
Como resolver
- Abra o Script Manager nas páginas de curso e licao: Visite uma página de curso, de licao e de quiz com o seu usuário logado e abra o Script Manager pela barra de administracao do Perfmatters no topo da página. Assim você ve exatamente quais scripts o Perfmatters esta controlando naquele contexto, com os handles reais carregados pelo Tutor LMS.
Acesse a página de uma licao do curso já logado como administrador Na barra superior clique em Perfmatters -> Script Manager Ative a opção 'Show jQuery and Dependencies' para ver os scripts dependentes - Reative os scripts do Tutor LMS para as páginas de curso: Localize os handles que começam com tutor (como tutor-front e tutor) e garanta que estão habilitados (Enabled) nas páginas de curso, licao e quiz. Se você os havia desativado em 'Everywhere', use a opção de excecao 'Current URL' ou 'Post Type' para mante-los ativos justamente onde o Tutor LMS precisa deles.
No Script Manager, encontre os handles iniciados por 'tutor' Marque Enabled para esses scripts Se estavam OFF em Everywhere, adicione excecao em 'Current URL' ou no Post Type das licoes/quizzes - Exclua os scripts do Tutor LMS do Delay JavaScript: Em Perfmatters -> Assets -> JavaScript, no recurso Delay JavaScript, adicione palavras-chave que identifiquem os arquivos do Tutor LMS no campo de exclusoes para que eles não sejam adiados. Inclua também jquery, já que os scripts do Tutor LMS dependem dele para inicializar.
Painel WP -> Perfmatters -> Assets -> JavaScript No campo de exclusão do Delay JavaScript adicione: tutor Adicione também: jquery Salve e limpe o cache do site - Confirme que o jQuery não foi desativado nas páginas de curso: Se você usa a opção de remover ou adiar o jQuery do nucleo, garanta que ela não se aplica as páginas do Tutor LMS. O player, o quiz e o progresso do Tutor LMS são construidos sobre o jQuery e quebram sem ele.
No Script Manager, verifique se 'jquery-core' esta Enabled nas páginas de curso/licao Se houver regra de Delay para jquery em Assets -> JavaScript, exclua jquery do delay - Limpe o cache e teste a sala de aula como aluno: Depois de ajustar o Script Manager e as exclusoes, limpe o cache do Perfmatters e do plugin de cache em uso, e teste a aula numa janela anonima como aluno: assistir o vídeo, enviar o quiz e marcar a aula como concluida. Confirme que o console do navegador não acusa mais erros de JavaScript do Tutor LMS.
Painel WP -> Perfmatters -> Tools -> Clear Local Fonts / limpe o cache Limpe também o cache do seu plugin de cache (WP Rocket, LiteSpeed etc.) Abra uma janela anonima, faça a aula como aluno e verifique o Console (F12)
<?php
/**
* Garante que os scripts do Tutor LMS nunca sejam adiados pelo Delay JavaScript
* do Perfmatters nas paginas de curso, licao e quiz.
* Cole no functions.php do tema filho ou num plugin de snippets.
*/
add_filter( 'perfmatters_delay_js_exclusions', 'full_perfmatters_keep_tutor_lms' );
function full_perfmatters_keep_tutor_lms( $exclusions ) {
// Palavras-chave que casam com os arquivos JS essenciais do Tutor LMS e do jQuery.
$keep = array( 'tutor', 'jquery' );
return array_merge( (array) $exclusions, $keep );
}














