I am developing a plugin, but during the activation phrase I am constantly facing bugs. However there is no easy way to display error messages, since echoing stuff would result in ‘unexpacted output’ error. I tried the admin_message hook but it doesn’t work. How can I alert the user if some stage of the activation has failed with reason?

3 s
3

For testing purposes you can use the log system (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);
}

To output error to the user without the “Headers already sent” error, you can use the php function trigger_error:

trigger_error('PLUGIN OK',E_USER_ERROR);

With WordPress must always be E_USER_ERROR or it won’t display the message.

I know the error_log works perfectly since I’m using it, but the trigger_error displays to must information. Try it and see for your self 🙂

Leave a Reply

Your email address will not be published. Required fields are marked *