Come emettere un messaggio durante l'attivazione del plugin


10

Sto sviluppando un plugin, ma durante la frase di attivazione mi trovo costantemente di fronte a bug. Tuttavia non esiste un modo semplice per visualizzare i messaggi di errore, poiché l'eco delle cose comporterebbe un errore di "output non atteso". Ho provato il hook admin_message ma non funziona. Come posso avvisare l'utente se qualche fase dell'attivazione è fallita per un motivo?

Risposte:


9

A scopo di test è possibile utilizzare il sistema di registro (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);
}

Per generare un errore per l'utente senza l'errore "Headers già inviati", puoi usare la funzione php trigger_error:

trigger_error('PLUGIN OK',E_USER_ERROR);

Con Wordpress deve essere sempre E_USER_ERROR o non visualizzerà il messaggio.

So che error_log funziona perfettamente da quando lo sto usando, ma trigger_error mostra le informazioni indispensabili. Provalo e vedi di persona :)


Sai dove posso trovare ulteriore documentazione sulla funzione error_log? Sto avendo difficoltà a capire come farlo funzionare.
Nathan Arthur,

Per coloro che potrebbero venire dopo: php.net/manual/en/function.error-log.php
Nathan Arthur

4

SOLUZIONE:

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

inserisci questo codice nel plugin e, dopo un errore, visualizza "my_loggg.txt" nella cartella del tuo plugin.


Questo ha funzionato per me, ma ho dovuto metterlo in fondo al file! Altrimenti non ha catturato l'output.
Ben Ogorek,

0

1) Rimuovere la spaziatura aggiuntiva nelle pagine interne o nelle pagine dei plug-in.

2) rimuovere lo stile in linea nelle pagine o nelle pagine dei plug-in.

ha funzionato per me ogni volta. ho usato molte volte lo stesso metodo. quando l'errore si verifica nella pagina del plug-in o nella pagina di Wordpress.

Saluti,

Hitesh Nagpal

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.