Title: Warning: Creating default object from empty value / Cannot modify header informa
Last modified: May 13, 2021

---

# Warning: Creating default object from empty value / Cannot modify header informa

 *  Resolved [mythicstorm88](https://wordpress.org/support/users/mythicstorm88/)
 * (@mythicstorm88)
 * [5 years ago](https://wordpress.org/support/topic/warning-creating-default-object-from-empty-value-cannot-modify-header-informa/)
 * Hey WordPressers!
 * We’ve started getting variations of the below error, all pertaining to line 29
   in a theme file (the creators dont seem to be around anymore so I can’t contact
   them for support) and my php isn’t advanced, so I’m not sure what’s wrong with
   this line of code or how to fix it.
 * Example error:
    Warning: Creating default object from empty value in [datebase]/
   wp-content/themes/ronneby/redux_framework/ReduxCore/inc/class.redux_filesystem.
   php on line 29 Warning: Cannot modify header information – headers already sent
   by (output started at [datebase]/wp-content/themes/ronneby/redux_framework/ReduxCore/
   inc/class.redux_filesystem.php:29) in [datebase]/wp-content/themes/ronneby/inc/
   lib/CompileLess/CompileLess.php on line 39
 * Sometimes it shows other similar errors, but the offending line is always class.
   redux_filesystem.php on line 29
 * Line 29 reads:
    `$this->parent->admin_notices[] = array(`
 * The full code is:
 *     ```
       <?php
   
           if ( ! defined( 'ABSPATH' ) ) {
               exit;
           }
   
           if ( ! class_exists( 'Redux_Filesystem' ) ) {
               class Redux_Filesystem {
   
                   /**
                    * Instance of this class.
                    *
                    * @since    1.0.0
                    * @var      object
                    */
                   protected static $instance = null;
   
                   protected static $direct = null;
   
                   private $creds = array();
   
                   public $fs_object = null;
   
                   public $parent = null;
   
                   public function __construct() {
                       $this->parent->admin_notices[] = array(
                           'type'    => 'error',
                           'msg'     => '<strong>' . __( 'File Permission Issues', 'redux-framework' ) . '</strong><br/>' . sprintf( __( 'We were unable to modify required files. Please check your permissions, or modify your wp-config.php file to contain your FTP login credentials as <a href="%s" target="_blank">outlined here</a>.', 'redux-framework' ), 'https://codex.wordpress.org/Editing_wp-config.php#WordPress_Upgrade_Constants' ),
                           'id'      => 'redux-wp-login',
                           'dismiss' => false,
                       );
                   }
   
                   /**
                    * Return an instance of this class.
                    *
                    * @since     1.0.0
                    * @return    object    A single instance of this class.
                    */
                   public static function get_instance( $parent = null ) {
   
                       // If the single instance hasn't been set, set it now.
                       if ( null == self::$instance ) {
                           self::$instance = new self;
                       }
   
                       if ( $parent !== null ) {
                           self::$instance->parent = $parent;
                       }
   
                       return self::$instance;
                   }
   
                   public function ftp_form() {
                       if ( isset( $this->parent->ftp_form ) && ! empty( $this->parent->ftp_form ) ) {
                           echo '<div class="wrap"><div class="error"><p>';
                           echo '<strong>' . __( 'File Permission Issues', 'redux-framework' ) . '</strong><br/>' . sprintf( __( 'We were unable to modify required files. Please ensure that <code>%1s</code> has the proper read-write permissions, or modify your wp-config.php file to contain your FTP login credentials as <a href="%2s" target="_blank">outlined here</a>.', 'redux-framework' ), Redux_Helpers::cleanFilePath( trailingslashit( WP_CONTENT_DIR ) ) . '/uploads/', 'https://codex.wordpress.org/Editing_wp-config.php#WordPress_Upgrade_Constants' );
                           echo '</p></div><h2></h2>' . '</div>';
                       }
                   }
   
                   function filesystem_init( $form_url, $method = '', $context = false, $fields = null ) {
                       global $wp_filesystem;
   
                       if ( ! empty( $this->creds ) ) {
                           return true;
                       }
   
                       ob_start();
   
                       /* first attempt to get credentials */
                       if ( false === ( $this->creds = request_filesystem_credentials( $form_url, $method, false, $context ) ) ) {
                           $this->creds            = array();
                           $this->parent->ftp_form = ob_get_contents();
                           ob_end_clean();
   
                           /**
                            * if we comes here - we don't have credentials
                            * so the request for them is displaying
                            * no need for further processing
                            **/
   
                           return false;
                       }
   
                       /* now we got some credentials - try to use them*/
                       if ( ! WP_Filesystem( $this->creds ) ) {
                           $this->creds = array();
                           /* incorrect connection data - ask for credentials again, now with error message */
                           request_filesystem_credentials( $form_url, '', true, $context );
                           $this->parent->ftp_form = ob_get_contents();
                           ob_end_clean();
   
                           return false;
                       }
   
                       return true;
                   }
   
                   public static function load_direct() {
                       if ( self::$direct === null ) {
                           require_once ABSPATH . '/wp-admin/includes/class-wp-filesystem-base.php';
                           require_once ABSPATH . '/wp-admin/includes/class-wp-filesystem-direct.php';
                           self::$direct = new WP_Filesystem_Direct( array() );
                       }
                   }
   
                   public function execute( $action, $file = '', $params = '' ) {
   
                       if ( empty( $this->parent->args ) ) {
                           return;
                       }
   
                       if ( ! empty ( $params ) ) {
                           extract( $params );
                       }
   
                       if ( ! is_dir( ReduxFramework::$_upload_dir ) ) {
                           wp_mkdir_p( ReduxFramework::$_upload_dir );
                       }
   
                       // Setup the filesystem with creds
                       require_once ABSPATH . '/wp-admin/includes/template.php';
   
                       require_once ABSPATH . '/wp-admin/includes/file.php';
   
                       if ( $this->parent->args['menu_type'] == 'submenu' ) {
                           $page_parent = $this->parent->args['page_parent'];
                           $base        = $page_parent . '?page=' . $this->parent->args['page_slug'];
                       } else {
                           $base = 'admin.php?page=' . $this->parent->args['page_slug'];
                       }
   
                       $url = wp_nonce_url( $base, 'redux-options' );
   
                       $this->filesystem_init( $url, 'direct', dirname( $file ) );
   
                       return $this->do_action( $action, $file, $params );
                   }
   
                   public function do_action( $action, $file = '', $params = '' ) {
   
                       if ( ! empty ( $params ) ) {
                           extract( $params );
                       }
   
                       global $wp_filesystem;
   
                       if ( ! isset( $params['chmod'] ) || ( isset( $params['chmod'] ) && empty( $params['chmod'] ) ) ) {
                           if ( defined( 'FS_CHMOD_FILE' ) ) {
                               $chmod = FS_CHMOD_FILE;
                           } else {
                               $chmod = 0644;
                           }
                       }
                       $res = false;
                       if ( ! isset( $recursive ) ) {
                           $recursive = false;
                       }
   
                       //$target_dir = $wp_filesystem->find_folder( dirname( $file ) );
   
                       // Do unique stuff
                       if ( $action == 'mkdir' ) {
   
                           if ( defined( 'FS_CHMOD_DIR' ) ) {
                               $chmod = FS_CHMOD_DIR;
                           } else {
                               $chmod = 0755;
                           }
                           $res = $wp_filesystem->mkdir( $file );
                           if ( ! $res ) {
                               wp_mkdir_p( $file );
   
                               $res = file_exists( $file );
                               if ( ! $res ) {
                                   mkdir( $file, $chmod, true );
                                   $res = file_exists( $file );
                               }
                           }
                       } elseif ( $action == 'rmdir' ) {
                           $res = $wp_filesystem->rmdir( $file, $recursive );
                       } elseif ( $action == 'copy' && ! isset( $this->filesystem->killswitch ) ) {
                           if ( isset( $this->parent->ftp_form ) && ! empty( $this->parent->ftp_form ) ) {
                               $res = copy( $file, $destination );
                               if ( $res ) {
                                   chmod( $destination, $chmod );
                               }
                           } else {
                               $res = $wp_filesystem->copy( $file, $destination, $overwrite, $chmod );
                           }
                       } elseif ( $action == 'move' && ! isset( $this->filesystem->killswitch ) ) {
                           $res = $wp_filesystem->copy( $file, $destination, $overwrite );
                       } elseif ( $action == 'delete' ) {
                           $res = $wp_filesystem->delete( $file, $recursive );
                       } elseif ( $action == 'rmdir' ) {
                           $res = $wp_filesystem->rmdir( $file, $recursive );
                       } elseif ( $action == 'dirlist' ) {
                           if ( ! isset( $include_hidden ) ) {
                               $include_hidden = true;
                           }
                           $res = $wp_filesystem->dirlist( $file, $include_hidden, $recursive );
                       } elseif ( $action == 'put_contents' && ! isset( $this->filesystem->killswitch ) ) {
                           // Write a string to a file
                           if ( isset( $this->parent->ftp_form ) && ! empty( $this->parent->ftp_form ) ) {
                               self::load_direct();
                               $res = self::$direct->put_contents( $file, $content, $chmod );
                           } else {
                               $res = $wp_filesystem->put_contents( $file, $content, $chmod );
                           }
                       } elseif ( $action == 'chown' ) {
                           // Changes file owner
                           if ( isset( $owner ) && ! empty( $owner ) ) {
                               $res = $wp_filesystem->chmod( $file, $chmod, $recursive );
                           }
                       } elseif ( $action == 'owner' ) {
                           // Gets file owner
                           $res = $wp_filesystem->owner( $file );
                       } elseif ( $action == 'chmod' ) {
   
                           if ( ! isset( $params['chmod'] ) || ( isset( $params['chmod'] ) && empty( $params['chmod'] ) ) ) {
                               $chmod = false;
                           }
   
                           $res = $wp_filesystem->chmod( $file, $chmod, $recursive );
   
                       } elseif ( $action == 'get_contents' ) {
                           // Reads entire file into a string
                           if ( isset( $this->parent->ftp_form ) && ! empty( $this->parent->ftp_form ) ) {
                               self::load_direct();
                               $res = self::$direct->get_contents( $file );
                           } else {
                               $res = $wp_filesystem->get_contents( $file );
                           }
                       } elseif ( $action == 'get_contents_array' ) {
                           // Reads entire file into an array
                           $res = $wp_filesystem->get_contents_array( $file );
                       } elseif ( $action == 'object' ) {
                           $res = $wp_filesystem;
                       } elseif ( $action == 'unzip' ) {
                           $unzipfile = unzip_file( $file, $destination );
                           if ( $unzipfile ) {
                               $res = true;
                           }
                       }
   
                       if ( ! $res ) {
                           if ($action == 'dirlist') {
       			if (empty($res) || $res == false || $res == '' ) {
                                   return;
       			}
   
                               if (is_array($res) && empty($res)) {
                                   return;
                               }
   
                               if (!is_array($res)) {
                                   if (count(glob("$file*")) == 0) {
                                       return;
                                   }
                               }
                           }
   
                           $this->killswitch              = true;
                           $this->parent->admin_notices[] = array(
                               'type'    => 'error',
                               'msg'     => '<strong>' . __( 'File Permission Issues', 'redux-framework' ) . '</strong><br/>' . sprintf( __( 'We were unable to modify required files. Please ensure that <code>%1s</code> has the proper read-write permissions, or modify your wp-config.php file to contain your FTP login credentials as <a href="%2s" target="_blank">outlined here</a>.', 'redux-framework' ), Redux_Helpers::cleanFilePath( trailingslashit( WP_CONTENT_DIR ) ) . '/uploads/', 'https://codex.wordpress.org/Editing_wp-config.php#WordPress_Upgrade_Constants' ),
                               'id'      => 'redux-wp-login',
                               'dismiss' => false,
                           );
                           //add_action( "redux/page/{$this->parent->args['opt_name']}/form/before", array(
                           //    $this,
                           //    'ftp_form'
                           //) );
                       }
   
                       return $res;
                   }
               }
   
               Redux_Filesystem::get_instance();
           }
       ```
   
 * Troubleshooting:
    So far I have tried: – adding ?> to the end of the file as 
   suggested here: [https://wordpress.org/support/topic/empty-value-warning-after-updating-php/](https://wordpress.org/support/topic/empty-value-warning-after-updating-php/)-
   php has been updated -updating wordpress & pluggins -disabling all plugins -running
   [https://wordpress.org/plugins/health-check/](https://wordpress.org/plugins/health-check/)-
   tried following [https://wordpress.org/support/article/faq-troubleshooting/#how-do-i-solve-the-headers-already-sent-warning-problem](https://wordpress.org/support/article/faq-troubleshooting/#how-do-i-solve-the-headers-already-sent-warning-problem)
 * The page I need help with: _[[log in](https://login.wordpress.org/?redirect_to=https%3A%2F%2Fwordpress.org%2Fsupport%2Ftopic%2Fwarning-creating-default-object-from-empty-value-cannot-modify-header-informa%2F%3Foutput_format%3Dmd&locale=en_US)
   to see the link]_

Viewing 3 replies - 1 through 3 (of 3 total)

 *  [stirrell42](https://wordpress.org/support/users/stirrell42/)
 * (@stirrell42)
 * [5 years ago](https://wordpress.org/support/topic/warning-creating-default-object-from-empty-value-cannot-modify-header-informa/#post-14434750)
 * I believe that you should be able to wrap the assignment with a check to see 
   if it exists before trying to set a value to it. Try this in your function:
 *     ```
       if (! empty($this->parent)) {
       		$this->parent->admin_notices[] = array(
       			'type'    => 'error',
       			'msg'     => '<strong>' . __( 'File Permission Issues', 'pinnacle' ) . '</strong><br/>' . sprintf( __( 'We were unable to modify required files. Please check your permissions, or modify your wp-config.php file to contain your FTP login credentials as <a href="%s" target="_blank">outlined here</a>.', 'pinnacle' ), 'https://codex.wordpress.org/Editing_wp-config.php#WordPress_Upgrade_Constants' ),
       			'id'      => 'redux-wp-login',
       			'dismiss' => false,
       		);
       	}
       ```
   
 * So you will add if (! empty($this->parent)) { above and a closing } after.
 * If this is a production site, you probably should also look into suppressing 
   warning messages from being output to the screen. It would make sense to log 
   warnings to a log file but not show these warnings and errors to the general 
   public. Here is an article related to this:
 * [https://www.wpbeginner.com/wp-tutorials/how-to-turn-off-php-errors-in-wordpress/](https://www.wpbeginner.com/wp-tutorials/how-to-turn-off-php-errors-in-wordpress/)
 * Hope this helps!
 *  Moderator [Steven Stern (sterndata)](https://wordpress.org/support/users/sterndata/)
 * (@sterndata)
 * Volunteer Forum Moderator
 * [5 years ago](https://wordpress.org/support/topic/warning-creating-default-object-from-empty-value-cannot-modify-header-informa/#post-14434754)
 * You’re using a commercial theme/plugin, so please use their official support 
   channel. We feel they are best equipped to support their products.
 * [https://themeforest.net/item/ronneby-highperformance-wordpress-theme/11776839/support](https://themeforest.net/item/ronneby-highperformance-wordpress-theme/11776839/support)
 * **Commercial products are [not supported in these forums](https://make.wordpress.org/support/trouble/section-1-getting-started/what-is-not-supported).**
 *  Thread Starter [mythicstorm88](https://wordpress.org/support/users/mythicstorm88/)
 * (@mythicstorm88)
 * [5 years ago](https://wordpress.org/support/topic/warning-creating-default-object-from-empty-value-cannot-modify-header-informa/#post-14435804)
 * Thank you [@stirrell42](https://wordpress.org/support/users/stirrell42/) ! Perfect,
   that fixed it 🙂
 * Much appreciated.

Viewing 3 replies - 1 through 3 (of 3 total)

The topic ‘Warning: Creating default object from empty value / Cannot modify header
informa’ is closed to new replies.

## Tags

 * [headers](https://wordpress.org/support/topic-tag/headers/)
 * [php](https://wordpress.org/support/topic-tag/php/)
 * [troubleshooting](https://wordpress.org/support/topic-tag/troubleshooting/)

 * In: [Fixing WordPress](https://wordpress.org/support/forum/how-to-and-troubleshooting/)
 * 3 replies
 * 4 participants
 * Last reply from: [mythicstorm88](https://wordpress.org/support/users/mythicstorm88/)
 * Last activity: [5 years ago](https://wordpress.org/support/topic/warning-creating-default-object-from-empty-value-cannot-modify-header-informa/#post-14435804)
 * Status: resolved

## Topics

### Topics with no replies

### Non-support topics

### Resolved topics

### Unresolved topics

### All topics
