Como corrigir certificados que não geram PDF no Tutor LMS
O que é certificado que não gera PDF no Tutor LMS?
O certificado no Tutor LMS e gerado pelo addon de Certificado (recurso PRO): ao concluir um curso, o aluno ve o botão View Certificate na página de visao geral do curso e pode baixar o documento em PDF ou JPG. A geração do arquivo depende do servidor renderizar a imagem do certificado a partir do template atribuido ao curso, o que exige uma extensão grafica do PHP e recursos de processamento.
O problema de certificado que não gera PDF no Tutor LMS aparece quando essa renderizacao falha: o botão de download não surge, o clique não gera arquivo, ou o PDF baixa em branco ou com a imagem distorcida. Segundo a documentação oficial da Themeum, a causa número um e a falta da extensão PHP Imagick no servidor: sem ela, o recurso de certificado simplesmente não funciona. Hospedagens compartilhadas frequentemente não habilitam o Imagick por padrão.
Como identificar
- O botão ‘View Certificate’ não aparece na página de visao geral do curso mesmo depois de o aluno concluir 100% do conteúdo.
- Ao clicar em baixar, nenhum arquivo PDF e gerado e a tela fica em branco ou volta para a página do curso.
- O PDF baixa, mas vem totalmente em branco ou apenas com o texto, sem a imagem de fundo do certificado.
- A imagem do certificado aparece distorcida, esticada ou cortada no PDF gerado.
- No log de erros do PHP surge algo como ‘Call to undefined function imagick’ ou ‘Class Imagick not found’ ao tentar gerar o certificado.
- A geração trava e retorna erro de tempo esgotado (‘Maximum execution time exceeded’) ou de memória em sites com muitos certificados.
Como prevenir
- Antes de habilitar certificados em producao, confirme com o provedor que a extensão PHP Imagick esta instalada e ativa no servidor.
- Padronize as imagens de fundo dos templates em png/jpg/jpeg de até 150KB nas dimensoes 852×606 ou 606×852, validando cada template no Certificate Builder antes de atribuir ao curso.
- Mantenha o PHP, o MySQL e o Tutor LMS Pro nas versões suportadas, testando atualizações em staging antes de aplicar no site ao vivo.
- Reserve memory_limit e max_execution_time folgados para a geração de PDF e monitore os recursos do servidor em cursos com muitos alunos concluindo ao mesmo tempo.
- Sempre atribua um template de certificado ao criar um curso e conclua um teste de ponta a ponta gerando um certificado de exemplo antes de publicar.
Causa
- A extensão PHP Imagick não esta instalada nem habilitada no servidor: segundo a doc oficial da Themeum, sem o Imagick o recurso de certificado do Tutor LMS não funciona, e muitas hospedagens compartilhadas não a ativam por padrão.
- O addon de Certificado não foi ativado em Tutor LMS Pro -> Add-ons, entao o motor que renderiza e baixa o documento nem e carregado para o curso.
- Nenhum template de certificado foi atribuido ao curso na seção Certificate Template da edição do curso, fazendo o botão de download não aparecer após a conclusão.
- A imagem de fundo do certificado esta fora das regras da doc oficial: passa de 150KB, usa formato diferente de png/jpg/jpeg ou não tem as dimensoes 852x606 (paisagem) ou 606x852 (retrato), gerando PDF em branco ou distorcido.
- Os recursos do servidor (CPU e RAM) ou o memory_limit/max_execution_time do PHP são baixos demais para renderizar a imagem do certificado, e o processo de geração estoura antes de concluir o PDF.
- A versão do PHP ou do MySQL esta defasada em relacao ao exigido pelo Tutor LMS Pro, fazendo a rotina de geração do certificado falhar no servidor.
Como resolver
- Confirme que o addon de Certificado esta ativo: Antes de mexer no servidor, garanta que o motor do certificado esta ligado. No painel do Tutor LMS Pro, abra a área de Add-ons e ative o Certificate. Sem o addon ativo, o botão de download nem e gerado.
Painel WP -> Tutor LMS Pro -> Add-ons Localize 'Certificate' e ative o interruptor Salve as alterações - Atribua um template de certificado ao curso: Na edição do curso, va até a seção Certificate Template, escolha um modelo (pre-pronto ou criado no Certificate Builder) e clique em Use This. Um curso sem template atribuido não mostra o botão View Certificate ao aluno.
Painel WP -> Cursos -> abra o curso -> seção 'Certificate Template' Selecione um template e clique em 'Use This' Clique em 'Update' para salvar o curso - Verifique se a extensão PHP Imagick esta habilitada: Esta e a causa número um segundo a doc oficial: sem o Imagick o certificado não gera. Crie um arquivo de diagnostico ou abra Ferramentas -> Saude do site -> Info para conferir se o Imagick aparece entre as extensões ativas. Se não aparecer, peca ao seu provedor de hospedagem para instalar e ativar a extensão Imagick do PHP.
Painel WP -> Ferramentas -> Saude do site -> aba Informações -> seção Servidor Procure 'Imagick' na lista de módulos do PHP Se ausente: abra um chamado no provedor pedindo a extensão 'php-imagick' - Ajuste a imagem de fundo do certificado: Abra o template no Certificate Builder e confira a imagem de fundo. A doc oficial exige png, jpg ou jpeg de no máximo 150KB com dimensoes 852x606 para paisagem ou 606x852 para retrato. Fora dessas regras o PDF sai em branco ou distorcido. Reexporte a imagem no tamanho correto e troque no template.
Painel WP -> Tutor LMS Pro -> Certificate Builder -> abra o template Substitua a imagem de fundo por um arquivo png/jpg/jpeg <= 150KB Use 852x606 px (paisagem) ou 606x852 px (retrato) e salve - Aumente os limites de PHP do servidor: A renderizacao do certificado consome CPU e RAM. Se a geração trava ou estoura, eleve memory_limit e max_execution_time no php.ini (ou no wp-config como interim) e confirme que o PHP e o MySQL estão em versões suportadas pelo Tutor LMS Pro. Reinicie o PHP após editar o php.ini.
memory_limit = 256M max_execution_time = 120 Após editar o php.ini, reinicie o serviço PHP (PHP-FPM)
<?php
// Diagnostico: rode via WP-CLI (wp eval-file check-cert.php) ou mu-plugin temporario.
// Confirma os pre-requisitos de geracao de certificado do Tutor LMS.
$ok = true;
// 1. Extensao Imagick (causa numero um na doc oficial).
if ( ! extension_loaded( 'imagick' ) || ! class_exists( 'Imagick' ) ) {
echo "[FALHA] Extensao PHP Imagick ausente. Peca ao provedor o pacote php-imagick.n";
$ok = false;
} else {
echo "[OK] Imagick carregado.n";
}
// 2. Limites de PHP para renderizar o PDF.
$mem = (int) ini_get( 'memory_limit' );
if ( $mem > 0 && $mem < 256 ) {
echo "[ALERTA] memory_limit em {$mem}M. Recomendado 256M para gerar o PDF.n";
}
if ( (int) ini_get( 'max_execution_time' ) > 0 && (int) ini_get( 'max_execution_time' ) < 120 ) {
echo "[ALERTA] max_execution_time baixo. Recomendado 120s.n";
}
// 3. Addon de Certificado ativo no Tutor LMS Pro.
if ( function_exists( 'tutor_utils' ) ) {
$addons = (array) get_option( 'tutor_addons_config', array() );
$cert = $addons['tutor-pro/addons/tutor-certificate/tutor-certificate.php'] ?? array();
if ( empty( $cert['is_enable'] ) ) {
echo "[FALHA] Addon Certificate desativado em Tutor LMS Pro -> Add-ons.n";
$ok = false;
} else {
echo "[OK] Addon Certificate ativo.n";
}
}
echo $ok ? "Pre-requisitos do certificado OK.n" : "Corrija os itens [FALHA] acima.n";














