9

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?

9

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 :)

2

SOLUTION:

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.

0

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.

Regards,

Hitesh Nagpal

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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