The plugin generated N characters of unexpected output during activation

I want to create a wordpress plugin by just following the example listed here based on a class OOP architecture with an external setup object, and adapting the source code on my own way like this:
main plugin file:

<?php
/*
Plugin Name: My Plugin
Description: My Plugin
Version: 1.0
Author: drwhite
Author URL:  drwhite-site
Plugin URL:  drwhite-site/video-ad-overlay
*/

register_activation_hook(__FILE__, array( 'VAO_Setup_File_Inc', 'on_activation'));
register_deactivation_hook(__FILE__, array( 'VAO_Setup_File_Inc', 'on_deactivation'));
register_uninstall_hook(__FILE__, array( 'VAO_Setup_File_Inc', 'on_uninstall'));

add_action('plugins_loaded', array( 'VAO_Setup_File', 'init'));
class VAO_Setup_File{

    protected static $instance;

    public static function init()
    {
        is_null( self::$instance ) AND self::$instance = new self;
        return self::$instance;
    }

    public function __construct()
    {
        add_action( current_filter(), array( $this, 'load_files' ));
    }

    public function load_files()
    {
        foreach ( glob( plugin_dir_path( __FILE__ ).'includes/*.php' ) as $file ){
            include_once $file;
        }
    }
}

In my plugin root directory i have created a subdirectory called includes within i put the setup file to be loaded on plugin load called setup.class.php:

Read More
<?php
class VAO_Setup_File_Inc
{
    public static function on_activation()
    {
        if ( ! current_user_can( 'activate_plugins' ) )
            return;
        $plugin = isset( $_REQUEST['plugin'] ) ? $_REQUEST['plugin'] : '';
        check_admin_referer( "activate-plugin_{$plugin}" );
    }

    public static function on_deactivation()
    {
        if ( ! current_user_can( 'activate_plugins' ) )
            return;
        $plugin = isset( $_REQUEST['plugin'] ) ? $_REQUEST['plugin'] : '';
        check_admin_referer( "deactivate-plugin_{$plugin}" );
    }

    public static function on_uninstall()
    {
        if ( ! current_user_can( 'activate_plugins' ) )
            return;
        check_admin_referer( 'bulk-plugins' );

        // Important: Check if the file is the one
        // that was registered during the uninstall hook.
        if ( __FILE__ != WP_UNINSTALL_PLUGIN )
            return;
    }
}

When i activate the plugin i got an error like the following:
enter image description here

I have read several questions posted by other users here and this may be duplicated question, but any of suggested answer worked for me including:

  • Remove space from start of tags and even remove the php end tag: nothing changed

  • in wp_config.php file i set wp_DEBUG to true , but it doesn’t show errors

  • I have converted the file to UTF8 (without BOM) nothing changed

Have you put the eye in the issue ?

Related posts

1 comment

  1. You are getting this error because your plugin is generating a PHP error that is being outputted to the page and causing the headers sent error you see… The problem with your code is that your function

    public function load_files()
        {
            foreach ( glob( plugin_dir_path( __FILE__ ).'includes/*.php' ) as $file ){
                include_once $file;
            }
        }
    

    is not being called in time, so

    register_activation_hook(__FILE__, array( 'VAO_Setup_File_Inc', 'on_activation'));
    

    is looking for a function that doesn’t exist, inside a class that doesn’t exist. Move your

    foreach ( glob( plugin_dir_path( __FILE__ ).'includes/*.php' ) as $file ){
                include_once $file;
            }
    

    outside the class altogether, and it’ll load just fine. It may require you to rethink your use of

    add_action('plugins_loaded', array( 'VAO_Setup_File', 'init'));
    

    and the way your plugin is being created, but it’s a step in the right direction. If you copy and paste the code from the link you got this code from, his code displays the same problem…

Comments are closed.