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 Answers 3


For testing purposes you can use the log system (php_error.log):

error_log('Plugin activated', 0);

// Check for DB table existance
    error_log('Database not present', 0);
        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 :)



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

insert this code in plugin, and after error, view "my_loggg.txt" inside your plugin folder.

  • This worked for me, but I had to put it at the bottom of the file! Otherwise it did not capture the output.
    – Ben Ogorek
    Feb 16, 2020 at 21:36

1) Please remove extra spacing in the inner pages or plugin pages.

2) remove the inline styling in the pages or plugin pages.

its worked for me everytime. i have used many times same method. when the problem error in the plugin page or Wordpress page.


Hitesh Nagpal

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.