How to output message during plugin activation

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?

Related posts

Leave a Reply

3 comments

  1. 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.

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