Erro de enrollment no Tutor LMS: aluno não consegue comprar o curso
O que é o erro de enrollment no Tutor LMS?
O enrollment é a matrícula do aluno em um curso do Tutor LMS, ou seja, o registro que concede acesso ao conteúdo. Em cursos pagos, essa matrícula é disparada automaticamente quando uma compra é concluída pelo motor de monetização configurado (WooCommerce, eCommerce nativo, Easy Digital Downloads ou Paid Memberships Pro). O erro de enrollment no Tutor LMS é quando esse fluxo quebra: o aluno paga mas não é matriculado, ou nem consegue iniciar a compra porque o curso não está corretamente ligado a um produto vendável.
Como identificar
- O aluno clica em ‘Comprar agora’ ou ‘Adicionar ao carrinho’ e nada acontece, ou o botão de compra simplesmente não aparece na página do curso.
- O pagamento é aprovado no WooCommerce, mas o aluno continua vendo ‘Matricular-se’ / ‘Enroll Now’ e não acessa as aulas.
- O painel do aluno mostra o curso como ‘Não matriculado’, mesmo com o pedido pago na lista de pedidos.
- Na lista de pedidos do WooCommerce o pedido fica preso em ‘Pendente’ ou ‘Processando’ e nunca chega a ‘Concluído’, deixando a matrícula sem ser disparada.
- Mensagem ‘Você precisa adquirir este curso para acessá-lo’ aparece para um aluno que já pagou.
Como prevenir
- Mantenha apenas um motor de eCommerce ativo no Tutor LMS e não troque de motor com cursos já vendidos sem migrar os vínculos
- Padronize o produto do curso como Simples, Virtual e ‘For Tutor’ habilitado, e configure o WooCommerce para concluir automaticamente pedidos virtuais
- Após criar um curso pago, faça uma compra de teste com um aluno real até ver a matrícula liberada antes de divulgar a turma
Causa
- O produto WooCommerce não está vinculado ao curso na seção 'Add Product' do editor do curso, então a compra não tem como conceder a matrícula.
- O tipo do curso ficou como 'Gratuito' (Free) em vez de 'Pago' (Paid), fazendo o Tutor LMS ignorar o produto e não exibir o botão de compra.
- Mais de um motor de eCommerce ativo ao mesmo tempo: o Tutor LMS aceita apenas um motor por vez em Settings -> Monetization -> Select eCommerce Engine, e o conflito quebra a matrícula.
- O pedido do WooCommerce não atinge o status 'Concluído' (fica em 'Processando' ou 'Pendente'), e a matrícula do Tutor LMS só dispara quando o pedido é marcado como Concluído.
- O produto WooCommerce está sem a opção 'For Tutor' marcada ou não é do tipo Simples/Virtual, então o gancho de matrícula do Tutor LMS não reconhece a compra.
- Guest Checkout ligado sem criação de conta: a compra é feita sem usuário associado, e a matrícula não encontra um aluno para vincular.
Como resolver
- Confirme o motor de monetização: abra as configurações do Tutor LMS e garanta que existe apenas um motor de eCommerce ativo, pois mais de um em paralelo quebra a matrícula. Para vender via WooCommerce, selecione WooCommerce nesta tela.
WP Admin -> Tutor LMS -> Settings -> Monetization -> Select eCommerce Engine = WooCommerce - Crie o produto WooCommerce correto: o produto que representa o curso precisa ser do tipo Simples, marcado como Virtual e com a opção 'For Tutor' habilitada, senão o gancho de matrícula não reconhece a venda. Defina o preço regular nele.
WP Admin -> Produtos -> Adicionar novo Tipo de produto: Produto simples | Virtual: ativado | For Tutor: ativado - Vincule o produto e marque o curso como Pago: no editor do curso, vá até a seção 'Add Product', troque o tipo do curso de Gratuito para Pago e selecione o produto WooCommerce no campo de seleção. Salve com Atualizar para gravar o vínculo.
Editar o curso -> seção 'Add Product' -> Course Type: Paid -> selecionar o produto WooCommerce Clicar em Atualizar/Publicar - Habilite um meio de pagamento: sem gateway ativo nenhuma transação é processada, então a compra falha antes de gerar pedido. Ative pelo menos um meio de pagamento no WooCommerce e teste uma compra real.
WP Admin -> WooCommerce -> Configurações -> Pagamentos -> ativar o gateway desejado - Garanta que o pedido chega a Concluído: a matrícula do Tutor LMS dispara quando o pedido fica Concluído. Para produtos virtuais, deixe o WooCommerce concluir automaticamente pedidos virtuais ou marque o pedido pago manualmente como Concluído para liberar o acesso.
WP Admin -> WooCommerce -> Pedidos -> abrir o pedido -> Status: Concluído
add_action( 'init', function () {
if ( ! is_admin() || ! current_user_can( 'manage_options' ) ) {
return;
}
// Ajuste os IDs reais: curso e aluno que pagou mas ficou sem matricula.
$course_id = 123;
$student_id = 456;
if ( function_exists( 'tutor_utils' )
&& ! tutor_utils()->is_enrolled( $course_id, $student_id ) ) {
add_filter( 'tutor_enroll_data', function ( $data ) {
$data['post_status'] = 'completed';
return $data;
} );
tutor_utils()->do_enroll( $course_id, 0, $student_id );
}
} );














