Como gerar mensagem durante a ativação do plug-in

10

Estou desenvolvendo um plug-in, mas durante a frase de ativação, estou constantemente enfrentando bugs. No entanto, não há uma maneira fácil de exibir mensagens de erro, pois o eco de itens resultaria em erro de 'saída não-compactada'. Eu tentei o gancho admin_message, mas ele não funciona. Como posso alertar o usuário se algum estágio da ativação falhou com razão?

lulalala
fonte

Respostas:

9

Para fins de teste, você pode usar o sistema de log (php_error.log):

error_log('Plugin activated', 0);

// Check for DB table existance
if(!$this->hasDBTable()){
    error_log('Database not present', 0);
    if($this->createCELabelsDBTables()){
        error_log('Database was created.', 0);
    } else {
        error_log('Error creating the CE Labels Plugin db tables!', 0);
    }

} else {
    error_log('Database OK', 0);
}

Para gerar um erro ao usuário sem o erro "Cabeçalhos já enviados", você pode usar a função php trigger_error:

trigger_error('PLUGIN OK',E_USER_ERROR);

Com o Wordpress deve sempre ser E_USER_ERROR ou não será exibida a mensagem.

Eu sei que o error_log funciona perfeitamente desde que eu estou usando, mas o trigger_error exibe informações obrigatórias. Experimente e veja por si mesmo :)

Domingos Freitas
fonte
Você sabe onde posso encontrar mais documentação sobre a função error_log? Estou tendo dificuldades para descobrir como fazê-lo funcionar.
Nathan Arthur
Para aqueles que podem vir depois: php.net/manual/en/function.error-log.php
Nathan Arthur
4

SOLUÇÃO:

register_activation_hook( __FILE__, 'my_activation_func' ); function my_activation_func() {
    file_put_contents(__DIR__.'/my_loggg.txt', ob_get_contents());
}

insira esse código no plug-in e, após o erro, veja "my_loggg.txt" dentro da pasta do plug-in.

T.Todua
fonte
Isso funcionou para mim, mas eu tive que colocá-lo na parte inferior do arquivo! Caso contrário, não capturou a saída.
Ben Ogorek 16/02
0

1) Remova o espaçamento extra nas páginas internas ou nas páginas de plugins.

2) remova o estilo embutido nas páginas ou nas páginas do plug-in.

funcionou para mim o tempo todo. Eu usei muitas vezes o mesmo método. quando o erro do problema na página do plugin ou na página do Wordpress.

Saudações,

Hitesh Nagpal

hitesh nagpal
fonte