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 39Sometimes 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.www.ads-software.com/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.www.ads-software.com/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.www.ads-software.com/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://www.ads-software.com/support/topic/empty-value-warning-after-updating-php/
-php has been updated
-updating wordpress & pluggins
-disabling all plugins
-running https://www.ads-software.com/plugins/health-check/
-tried following https://www.ads-software.com/support/article/faq-troubleshooting/#how-do-i-solve-the-headers-already-sent-warning-problemThe page I need help with: [log in to see the link]
- The topic ‘Warning: Creating default object from empty value / Cannot modify header informa’ is closed to new replies.