Como corrigir pré-requisitos de curso que não funcionam no Tutor LMS
O que é pré-requisitos de curso no Tutor LMS?
O pré-requisito de curso do Tutor LMS é um recurso de trancamento que obriga o aluno a concluir um ou mais cursos antes de poder se inscrever em um curso dependente. Por exemplo, exigir que o aluno termine ‘Introdução ao PHP’ antes de liberar ‘PHP Avançado’. Quando funciona, a página do curso lista os pré-requisitos e bloqueia a matrícula até que todos estejam concluídos, marcando com um sinal de concluído os que o aluno já finalizou.
Esse recurso vem do addon Prerequisites, que é parte do Tutor LMS Pro e precisa ser ativado em Addons. A falha aparece de duas formas: o campo Course Prerequisites some da aba Additional no Course Builder, impedindo definir o pré-requisito; ou o pré-requisito está definido mas não é respeitado, e o aluno consegue se inscrever direto. As causas mais comuns, segundo a documentação oficial do Tutor LMS, são o addon não ativado, o curso pré-requisito em rascunho e o tema não usar os templates padrão do Tutor.
Como identificar
- O aluno consegue se inscrever no curso avançado sem ter concluído o curso definido como pré-requisito, como se o trancamento não existisse.
- O campo Course Prerequisites não aparece na aba Additional do Course Builder ao editar o curso, impossibilitando escolher o curso exigido.
- A página de detalhes do curso não exibe a lista de pré-requisitos nem o sinal de concluído ao lado dos cursos já finalizados pelo aluno.
- O addon Prerequisites não está listado ou aparece desligado em Tutor LMS Pro -> Addons.
- O pré-requisito é ignorado apenas em páginas montadas com page builder ou template de tema customizado, mas funciona no template padrão do Tutor.
Como prevenir
- Mantenha o addon Prerequisites sempre ativo em Tutor LMS Pro -> Addons e revise os addons após cada atualização do Tutor, que pode redefinir estados.
- Publique o curso pré-requisito antes de marcá-lo como exigência em outro curso, evitando regras que apontam para cursos em rascunho.
- Padronize a página de curso no template do Tutor LMS e, ao usar page builder, monte sobre os templates do Tutor para preservar a verificação de pré-requisito.
- Documente a cadeia de pré-requisitos entre os cursos para que um ajuste de status ou de campo não derrube o trancamento sem querer.
Causa
- O addon Prerequisites está desativado em Tutor LMS Pro -> Addons: sem ele ligado, o campo Course Prerequisites não aparece no Course Builder e nenhum trancamento é aplicado (recurso é do Tutor LMS Pro).
- O curso escolhido como pré-requisito está em rascunho ou privado em vez de publicado, então o Tutor não o reconhece como concluível e o trancamento não é avaliado.
- O pré-requisito foi definido em uma versão do curso e não foi salvo: o campo Course Prerequisites na aba Additional precisa ser preenchido e o curso atualizado/publicado para gravar a regra.
- O tema ou um template de page builder substitui o template de página de curso do Tutor LMS e não chama a verificação de pré-requisito, deixando o botão de inscrição livre.
- Um plugin de cache ou de inscrição customizada serve a página de matrícula em cache ou inscreve o aluno por um fluxo próprio, pulando a checagem de pré-requisito do Tutor.
Como resolver
- Ative o addon Prerequisites no Tutor LMS Pro: O pré-requisito de curso só existe com o addon Prerequisites ligado. Sem ele, o campo de configuração nem aparece no Course Builder. Ative o addon antes de qualquer outro ajuste.
Painel WP -> Tutor LMS Pro -> Addons Localize o addon 'Prerequisites' e ligue a chave (toggle) para ativar - Defina o pré-requisito na aba Additional do curso: Com o addon ativo, edite o curso dependente e abra a aba Additional no Course Builder. No campo Course Prerequisites, selecione o curso exigido na lista. Vários pré-requisitos podem ser adicionados. Salve atualizando ou publicando o curso.
Painel WP -> Tutor LMS Pro -> Courses -> abra o curso dependente No Course Builder, abra a aba 'Additional' No campo 'Course Prerequisites', selecione o curso exigido e clique em Atualizar/Publicar - Publique o curso usado como pré-requisito: Confirme que o curso escolhido como pré-requisito está com status Publicado, e não Rascunho ou Privado. Um curso não publicado não é reconhecido como concluível, então a regra de trancamento não é avaliada.
Painel WP -> Tutor LMS Pro -> Courses Abra o curso pré-requisito e confirme o status como 'Publicado' - Garanta que a página do curso usa o template do Tutor: Verifique a página de detalhes do curso no template padrão do Tutor LMS. Se um tema ou page builder substituir esse template e não chamar a verificação de pré-requisito, o botão de inscrição fica liberado. Teste com um tema padrão para isolar.
Painel WP -> Aparência -> Temas -> ative um tema padrão (ex.: Twenty Twenty-Four) Abra a página do curso e confirme se a lista de pré-requisitos aparece Se voltar a funcionar, ajuste o template do curso no tema/page builder para usar o do Tutor - Limpe o cache e isole conflito de plugin: Limpe o cache de página para garantir que a verificação de pré-requisito rode no servidor a cada visita. Se o problema persistir, desative plugins de inscrição customizada um a um para achar o que pula a checagem do Tutor.
Limpe o cache do plugin de cache (ex.: WP Rocket -> Configurações -> Limpar cache) Exclua a página de curso do cache de página do plugin Painel WP -> Plugins -> desative plugins de inscrição/checkout customizado um a um e teste a inscrição
<?php
// Reforça o trancamento de pré-requisito do Tutor LMS no servidor,
// barrando a inscrição quando algum curso exigido ainda não foi concluído.
add_action( 'tutor_before_enrol_completed', 'full_guard_tutor_prerequisite', 10, 1 );
function full_guard_tutor_prerequisite( $course_id ) {
if ( ! function_exists( 'tutor_utils' ) ) {
return;
}
$prerequisites = (array) get_post_meta( $course_id, '_tutor_course_prerequisites_ids', true );
$user_id = get_current_user_id();
if ( empty( $prerequisites ) || ! $user_id ) {
return;
}
foreach ( $prerequisites as $required_id ) {
$required_id = (int) $required_id;
if ( 'publish' !== get_post_status( $required_id ) ) {
continue; // curso pré-requisito não publicado não tranca
}
if ( ! tutor_utils()->is_completed_course( $required_id, $user_id ) ) {
wp_die( esc_html__( 'Conclua os cursos pré-requisito antes de se inscrever.', 'tutor' ) );
}
}
}














