🎉 USE O CUPOM FIM.DE.SEMANA.FULL | 20% OFF acima de R$ 100,00

Como corrigir o cache do WP-Optimize em páginas de curso do Tutor LMS

Time Full Services Time Full Services
Tipo Performance & Velocidade
Nome do erro Cache do WP-Optimize servindo versão deslogada em páginas de curso do Tutor LMS EN: WP-Optimize page cache serving logged-out version on Tutor LMS course pages
Severidade Atenção
Descrição O cache do WP-Optimize em páginas de curso do Tutor LMS quebra quando o cache de página estático é servido a alunos logados: a versão deslogada congelada esconde o conteúdo liberado, o progresso e os botões de matrícula, porque o WP-Optimize entrega o mesmo arquivo HTML para todos sem o cache por usuário ativado.

O que é cache do WP-Optimize em páginas de curso do Tutor LMS?

O cache do WP-Optimize em páginas de curso do Tutor LMS gera um arquivo HTML estático de cada página e o serve a todos os visitantes seguintes, evitando reprocessar PHP a cada acesso. Isso acelera páginas públicas, mas entra em conflito com o Tutor LMS, que monta as páginas de curso de forma dinâmica para cada aluno: o que está liberado, o progresso da aula, o botão de continuar e a área de conteúdo restrito dependem de quem está logado. Quando o WP-Optimize guarda uma versão dessa página e a reentrega para todo mundo, o aluno vê o estado de outra sessão, normalmente o estado deslogado.

Na prática, a página de curso, de aula ou do painel do aluno aparece como se ninguém estivesse logado, mostrando o botão de matrícula no lugar do conteúdo já comprado. A documentação oficial do WP-Optimize trata exatamente esse cenário e oferece o User specific cache, recurso que gera arquivos de cache separados por usuário logado, citando como exemplo justamente alunos de curso online que precisam ver o conteúdo restrito acelerado. A correção combina excluir as páginas dinâmicas do cache padrão e, quando aplicável, ligar o cache por usuário.

Como identificar

  • A página de curso do Tutor LMS mostra o botão ‘Matricular-se’ ou ‘Inscrever-se’ mesmo para um aluno que já está logado e matriculado.
  • O conteúdo da aula aparece bloqueado com a mensagem de conteúdo restrito para quem já tem acesso, ou mostra a versão pública da lição.
  • A barra de progresso do curso fica travada em um valor antigo e só atualiza depois de limpar manualmente o cache em WP-Optimize.
  • O painel do aluno (frontend dashboard) carrega vazio ou exibe os dados de outro usuário, porque o HTML cacheado foi gerado em outra sessão.
  • Sair e entrar na conta não muda nada na página de curso até a expiração do cache, sinal de que um arquivo estático está sendo servido a todos.
Antes de começar: Antes de alterar as regras de cache e de exclusão de URLs em produção, faça um backup do site (arquivos e banco de dados) ou teste primeiro em um ambiente de staging, para reverter rápido caso uma página de curso pare de carregar para os alunos.

Como prevenir

  • Sempre que instalar um plugin de cache em um site com Tutor LMS, exclua de imediato as URLs de curso, aula e painel do aluno do cache de página estático.
  • Mantenha o User specific cache ligado em sites com área de membros, para que conteúdo restrito de aluno logado seja cacheado por usuário e nunca compartilhado entre sessões.
  • Padronize os permalinks dos cursos e revise as regras de exclusão sempre que mudar a base de URL do Tutor LMS, evitando que páginas dinâmicas escapem da lista.
  • Teste cada mudança de cache logado como aluno e deslogado como visitante antes de subir para produção, validando progresso, matrícula e conteúdo liberado.

Causa

  • O cache de página do WP-Optimize está ativo sem o User specific cache, então o mesmo arquivo HTML estático da página de curso é servido a todos os alunos logados, congelando o estado de uma única sessão.
  • As URLs dinâmicas do Tutor LMS (a base /courses/, as lições, o /dashboard/ do aluno) não estão na lista de URLs excluídas do cache em WP-Optimize, então essas páginas que deveriam ser sempre dinâmicas viram arquivos estáticos.
  • O preload (pré-carregamento) do WP-Optimize gerou a versão deslogada das páginas de curso antes de qualquer aluno acessar, e é justamente esse HTML público que passa a ser entregue a quem está matriculado.
  • A página de curso traz nonce do WordPress e tokens de sessão dentro do HTML; cacheados de forma estática, esses valores expiram e quebram ações AJAX do Tutor LMS como marcar aula concluída ou enviar quiz.
  • O cookie de login não está fazendo o WP-Optimize ignorar o cache para o usuário logado naquela página específica, fazendo o servidor entregar o arquivo cacheado em vez de gerar o conteúdo do aluno.

Como resolver

  1. Limpe o cache atual do WP-Optimize: Antes de qualquer ajuste, apague o cache existente para descartar as versões deslogadas já gravadas das páginas de curso. Sem isso, você continua testando contra arquivos antigos e acha que a correção não funcionou.
    Painel WP -> WP-Optimize -> Cache
    Clique em 'Purge cache' (Limpar cache) para apagar todos os arquivos gerados
  2. Exclua as páginas dinâmicas do Tutor LMS do cache: Adicione as URLs do Tutor LMS à lista de exclusão do cache para que essas páginas voltem a ser geradas dinamicamente a cada acesso. Use a base de cursos, as lições e o painel do aluno; o curinga no fim cobre as URLs filhas.
    Painel WP -> WP-Optimize -> Cache -> aba de configurações avançadas
  3. No campo de URLs a excluir do cache, adicione uma por linha:
    /courses/*
    /course/*
    /dashboard/*
  4. Ative o User specific cache para alunos logados: Ligue o cache por usuário, recurso que a documentação do WP-Optimize indica para conteúdo restrito de curso online: ele gera arquivos de cache separados por usuário logado, então cada aluno recebe a versão correta com o conteúdo liberado, sem perder velocidade.
    Painel WP -> WP-Optimize -> Cache -> configurações
    Marque a opção 'Serve a cached version of the page to logged in users' / 'User specific cache'
    Salve as alterações
  5. Confirme que o aluno recebe a página dinâmica: Entre com uma conta de aluno real matriculado e abra a página do curso e uma lição. O conteúdo liberado, o progresso e o botão de continuar precisam aparecer corretamente. Repita em uma aba anônima deslogada para confirmar que a versão pública também está certa.
    Acesse a página do curso logado como aluno matriculado
    Verifique no rodapé da página o comentário 'Cached by WP-Optimize' e o horário de geração
    Abra a mesma URL em aba anônima e compare o estado deslogado
  6. Garanta a limpeza do cache ao publicar conteúdo: Confirme que o WP-Optimize limpa o cache quando um curso ou aula é atualizado, para o aluno não ver conteúdo antigo. Se a estrutura de URLs do seu curso for diferente da padrão, ajuste os caminhos da exclusão para casar com os seus permalinks.
    Painel WP -> WP-Optimize -> Cache -> confirme a expiração (cache lifespan) ativa
    Atualize um curso de teste e verifique se a página correspondente saiu do cache
    Ajuste os caminhos de exclusão conforme os permalinks reais do Tutor LMS
PHP
<?php
// Garante que as paginas dinamicas do Tutor LMS nunca sejam servidas do
// cache de pagina do WP-Optimize, mesmo que a regra do painel falhe.
add_filter( 'wpo_url_exceptions', 'full_tutor_lms_no_cache' );
function full_tutor_lms_no_cache( $exceptions ) {
    $rotas = array(
        '/courses/.*',   // arquivo e single de curso
        '/course/.*',    // base alternativa do permalink
        '/lesson/.*',    // paginas de aula
        '/dashboard/.*', // painel frontend do aluno
    );
    foreach ( $rotas as $rota ) {
        if ( ! in_array( $rota, $exceptions, true ) ) {
            $exceptions[] = $rota;
        }
    }
    return $exceptions;
}

Perguntas frequentes

Por que a página de curso do Tutor LMS mostra a versão deslogada para alunos logados
Porque o WP-Optimize gravou um arquivo HTML estático dessa página e o serve a todos. Sem o cache por usuário, o aluno logado recebe a versão pública congelada. Exclua as URLs de curso do cache e ative o User specific cache para corrigir.
Preciso desligar todo o cache do WP-Optimize por causa do Tutor LMS
Não. O ideal é manter o cache nas páginas públicas e excluir apenas as URLs dinâmicas do curso, da aula e do painel do aluno. Assim o site continua rápido e só as páginas que dependem do login deixam de ser servidas estáticas.
O que é o User specific cache do WP-Optimize
É um recurso que gera arquivos de cache separados por usuário logado. A documentação oficial cita justamente alunos de curso online: cada participante recebe a versão cacheada do conteúdo restrito dele, mantendo a velocidade sem misturar sessões diferentes.
Quais URLs do Tutor LMS devo excluir do cache do WP-Optimize
Exclua a base dos cursos, as páginas de aula e o painel do aluno, geralmente /courses/*, /course/* e /dashboard/*. Confira os permalinks reais do seu site, pois a base pode variar, e use o curinga no fim para cobrir as páginas filhas.
O cache do WP-Optimize trava a barra de progresso do aluno
Sim. Se a página de curso é servida de um arquivo estático, o progresso fica congelado no valor da versão cacheada. Excluir a página do cache e ligar o cache por usuário faz o progresso voltar a refletir o estado real de cada aluno.
Quizzes e botões de marcar aula concluída pararam depois de ligar o cache
O HTML cacheado guarda nonces e tokens que expiram, quebrando as ações AJAX do Tutor LMS. Excluir as páginas de aula e de quiz do cache resolve, pois elas voltam a ser geradas com nonce válido a cada carregamento.
Como confirmar se a página de curso está sendo servida do cache
Abra a página, veja o código-fonte e procure pelo comentário do WP-Optimize no rodapé indicando que a página foi cacheada e o horário. Se ele aparecer em uma página de curso logada, a exclusão ainda não está pegando aquela URL.
Depois de excluir as URLs, as páginas de curso ficam lentas
Elas passam a ser geradas dinamicamente, o que custa um pouco mais que o estático, mas é o comportamento correto para conteúdo de aluno. Com o User specific cache ligado, o aluno ainda recebe uma versão cacheada própria após o primeiro acesso.

Seja PRO.

Tenha acesso a snippets de código premium — PHP, JavaScript, CSS e HTML prontos para usar em seus projetos.

Conhecer o plano Pro →

Uma nova era para o WordPress.

A FULL Services redefine o CMS com uma arquitetura modular que transforma o WordPress em um motor de crescimento digital. 

Painéis personalizados

Um novo nível de controle para o WordPress. Acompanhe métricas, automações e evolução do seu site em um único painel visual.

A força por trás de grandes marcas

Para agências, estúdios e profissionais independentes que desejam oferecer soluções de alto nível com sua própria marca.

Componentes

Hero Sections

30 componentes

Seções de CTA

14 componentes

Login

14 componentes

Blog

14 componentes

Cabeçalhos

24 componentes

Seções de FAQ

53 componentes

Cadastro

53 componentes

Blog individual

53 componentes

Rodapés

28 componentes

Seções de contato

27 componentes

Seções de preços

27 componentes

Faixas

27 componentes

Portfólio

16 componentes

Seções de equipe

12 componentes

Números

12 componentes

Logotipos

12 componentes