$conf, $runtime; function_exists('chdir') AND chdir(APP_PATH); $r = 'mysql' == $conf['cache']['type'] ? website_set('runtime', $runtime) : cache_set('runtime', $runtime); } function runtime_truncate() { global $conf; 'mysql' == $conf['cache']['type'] ? website_set('runtime', '') : cache_delete('runtime'); } register_shutdown_function('runtime_save'); ?>functions - 'Attempt to modify property of non-object' warning|Programmer puzzle solving
最新消息:Welcome to the puzzle paradise for programmers! Here, a well-designed puzzle awaits you. From code logic puzzles to algorithmic challenges, each level is closely centered on the programmer's expertise and skills. Whether you're a novice programmer or an experienced tech guru, you'll find your own challenges on this site. In the process of solving puzzles, you can not only exercise your thinking skills, but also deepen your understanding and application of programming knowledge. Come to start this puzzle journey full of wisdom and challenges, with many programmers to compete with each other and show your programming wisdom! Translated with DeepL.com (free version)

functions - 'Attempt to modify property of non-object' warning

matteradmin7PV0评论

** This question is outdated! **

I use the bellow function to disable a plugin update. It works, because I use an old version of this plugin and it does not show me that a newer version exists, but, however, I get a warning on line 2: Attempt to modify property of non-object. How to fix this?

function my_filter_plugin_updates( $value ) {
   unset( $value->response['duplicator/duplicator.php'] ); //Duplicator
   return $value;
}

add_filter( 'site_transient_update_plugins', 'my_filter_plugin_updates' );


UPDATE

I am not a PHP coder, so I do not know if what I did is correct, but this works - no errors, no warnings, no plugin update:

// Disable plugin update
function my_filter_plugin_updates() {
   $value = new StdClass;
   unset( $value->response['duplicator/duplicator.php'] ); //Duplicator
   return $value;
}

add_filter( 'site_transient_update_plugins', 'my_filter_plugin_updates' );

** This question is outdated! **

I use the bellow function to disable a plugin update. It works, because I use an old version of this plugin and it does not show me that a newer version exists, but, however, I get a warning on line 2: Attempt to modify property of non-object. How to fix this?

function my_filter_plugin_updates( $value ) {
   unset( $value->response['duplicator/duplicator.php'] ); //Duplicator
   return $value;
}

add_filter( 'site_transient_update_plugins', 'my_filter_plugin_updates' );


UPDATE

I am not a PHP coder, so I do not know if what I did is correct, but this works - no errors, no warnings, no plugin update:

// Disable plugin update
function my_filter_plugin_updates() {
   $value = new StdClass;
   unset( $value->response['duplicator/duplicator.php'] ); //Duplicator
   return $value;
}

add_filter( 'site_transient_update_plugins', 'my_filter_plugin_updates' );
Share Improve this question edited Nov 23, 2018 at 16:55 Iurie asked Jun 26, 2014 at 20:19 IurieIurie 1,1314 gold badges25 silver badges46 bronze badges 3
  • 1 I'm not sure you can. The code you have looks to be taken from wordpress.stackexchange/questions/25358/… - and had the same problem there. There are also other solutions on that post. – vancoder Commented Jun 26, 2014 at 20:35
  • @vancoder Thank you! You are right, but I like this solution and I hope it can be improved. – Iurie Commented Jun 27, 2014 at 5:50
  • 1 It looks like you're disabling all plugin updates this way, since $value is always a new empty object? – birgire Commented Jun 27, 2014 at 12:14
Add a comment  | 

2 Answers 2

Reset to default 7

Some simple php, check if it's set before trying to unset it.

function my_filter_plugin_updates( $value ) {
   if( isset( $value->response['duplicator/duplicator.php'] ) )
       unset( $value->response['duplicator/duplicator.php'] ); //Duplicator

   return $value;
}
add_filter( 'site_transient_update_plugins', 'my_filter_plugin_updates' );

This could be late but assigning a new instance of an object, you are overwritten the proper value of $value

Post a comment

comment list (0)

  1. No comments so far