Como corrigir a exportação de dados de alunos que falha no Tutor LMS no WordPress
O que é exportação de dados de alunos no Tutor LMS?
A exportação de dados de aluno no Tutor LMS é o recurso que transforma os relatórios de alunos matriculados, progresso e vendas em um arquivo CSV baixável. Segundo a documentação oficial da Themeum, esse recurso pertence ao addon Reports, exclusivo do Tutor LMS Pro: o administrador o ativa em Tutor LMS Pro e o exporta pelo Frontend Dashboard em Analytics, clicando no botão Download CSV. Sem o addon ativo, não existe botão de exportação para acionar.
O erro aparece de três formas práticas. O botão Download CSV não está presente porque o addon Reports nunca foi habilitado. O botão existe mas não dispara o download, normalmente por um conflito de JavaScript no painel que bloqueia a requisição AJAX da exportação. Ou o download começa e entrega um CSV vazio ou truncado, quando o volume de alunos estoura limites de PHP como o tempo máximo de execução ou a memória disponível, e o servidor encerra o processo antes de montar o arquivo completo.
Como identificar
- O botão ‘Download CSV’ não aparece na aba Analytics do Frontend Dashboard, mesmo com o Tutor LMS Pro ativo.
- Ao clicar em ‘Download CSV’ nada acontece: nenhum arquivo é baixado e a página não dá retorno.
- O arquivo CSV é baixado, mas abre vazio ou só com o cabeçalho das colunas, sem as linhas de alunos.
- O download começa e é interrompido na metade, gerando um CSV truncado quando há muitos alunos matriculados.
- No console do navegador (F12) surge um erro de JavaScript ou uma resposta 500 da requisição admin-ajax ao tentar exportar.
- A página de relatório fica em ‘carregando’ indefinidamente e o navegador acusa tempo de requisição esgotado durante a exportação.
Como prevenir
- Mantenha o addon Reports do Tutor LMS Pro sempre ativo em sites que precisam exportar dados de alunos, para que o botão Download CSV nunca dependa de reativação na hora.
- Dimensione max_execution_time e memory_limit do PHP conforme o número de alunos cresce, validando a exportação em staging após cada salto grande de matrículas.
- Mantenha admin-ajax.php fora de regras agressivas de cache e do bloqueio do firewall, já que a exportação do Tutor LMS depende dessa requisição.
- Atualize Tutor LMS Pro e WordPress na versão estável mais recente e valide a exportação em staging antes de subir, acompanhando mudanças no addon Reports.
Causa
- O addon Reports do Tutor LMS Pro está desativado em Tutor LMS Pro -> Add-ons, então o menu Report e o botão Download CSV em Analytics nem chegam a ser renderizados (a doc oficial coloca a exportação dentro desse addon).
- O usuário que tenta exportar não é administrador nem instrutor com a capability adequada, então a ação de exportação do Frontend Dashboard é negada e devolve resposta vazia.
- Um conflito de JavaScript com outro plugin ou tema interrompe o script do painel do Tutor LMS antes da requisição admin-ajax de exportação disparar, fazendo o clique em Download CSV não responder.
- O número de alunos matriculados ultrapassa o limite de max_execution_time ou de memory_limit do PHP, e o servidor encerra o processo de geração do CSV no meio, devolvendo um arquivo truncado ou vazio.
- Um plugin de cache ou de segurança (firewall/WAF) bloqueia ou serve uma versão em cache da requisição admin-ajax.php de exportação, impedindo que o CSV recém-gerado seja entregue ao navegador.
Como resolver
- Ative o addon Reports no Tutor LMS Pro: A exportação de dados de aluno só existe com o addon Reports do Tutor LMS Pro ligado. Ative-o e confirme que o menu Report passa a aparecer no painel do Tutor LMS, conforme a documentação oficial da Themeum.
Painel WP -> Tutor LMS Pro -> Add-ons Localize 'Reports' e ative a chave (toggle) Confirme que o menu 'Report' agora aparece sob Tutor LMS no admin - Exporte pelo caminho correto do Frontend Dashboard: A exportação é feita pelo painel do usuário, não pelo admin. Acesse o Frontend Dashboard, abra Analytics e clique em Download CSV para baixar os dados de alunos e vendas em CSV, como indica a doc do addon Reports.
Acesse SeuSite/dashboard (Frontend Dashboard) Abra a aba Analytics -> Export Clique no botão 'Download CSV' - Confirme a permissão de quem exporta: A exportação responde vazio quando o usuário não tem capability para acessar os relatórios. Faça a exportação como administrador, ou garanta que o instrutor tenha permissão de ver os relatórios dos próprios cursos antes de tentar baixar o CSV.
Faça login como Administrador e repita a exportação para isolar problema de permissão Painel WP -> Usuários -> confirme o papel do usuário que exporta (Administrador ou Instrutor) Em Tutor LMS Pro -> Add-ons, confirme que o instrutor tem acesso ao relatório dos próprios cursos - Aumente os limites de PHP para volumes grandes: Quando o CSV vem vazio ou truncado com muitos alunos, o servidor está encerrando o processo por estourar tempo ou memória. Eleve max_execution_time e memory_limit e tente exportar de novo. Use staging ou faça backup antes de mexer em arquivos do servidor.
Edite o php.ini (ou wp-config.php / .htaccess conforme o host) max_execution_time = 300 memory_limit = 512M Reinicie o PHP/servidor e refaça a exportação - Descarte conflito de JavaScript, cache e firewall: Se o botão Download CSV não responde mesmo com tudo certo, isole a interferência. Limpe o cache, libere o admin-ajax.php no firewall e desative os demais plugins um a um, recarregando o painel a cada teste para achar o que bloqueia a requisição de exportação.
Limpe o cache do plugin de cache e do CDN/Cloudflare Adicione admin-ajax.php à allowlist do firewall/WAF (não cachear) Painel WP -> Plugins -> desative os demais plugins um a um e teste o Download CSV a cada vez Abra o console do navegador (F12 -> Console) e observe o erro ao clicar em exportar
<?php
/**
* Contorno: exporta as matriculas do Tutor LMS em CSV quando o botao do painel falha.
* Acesse /wp-admin/admin-post.php?action=full_tutor_export_alunos como administrador.
*/
add_action( 'admin_post_full_tutor_export_alunos', 'full_tutor_export_alunos' );
function full_tutor_export_alunos() {
if ( ! current_user_can( 'manage_options' ) ) {
wp_die( 'Permissao negada.' );
}
// Matriculas do Tutor LMS sao posts do tipo 'tutor_enrolled'.
$matriculas = get_posts( array(
'post_type' => 'tutor_enrolled',
'post_status' => 'completed',
'posts_per_page' => -1,
'fields' => 'ids',
) );
header( 'Content-Type: text/csv; charset=utf-8' );
header( 'Content-Disposition: attachment; filename=alunos-tutor-lms.csv' );
$out = fopen( 'php://output', 'w' );
fputcsv( $out, array( 'aluno', 'email', 'curso_id', 'data' ) );
foreach ( $matriculas as $id ) {
$post = get_post( $id );
$user = get_userdata( $post->post_author );
if ( ! $user ) {
continue;
}
fputcsv( $out, array(
$user->display_name,
$user->user_email,
$post->post_parent, // ID do curso
$post->post_date,
) );
}
fclose( $out );
exit;
}














