0

** 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' );
  • 1
    I'm not sure you can. The code you have looks to be taken from wordpress.stackexchange.com/questions/25358/… - and had the same problem there. There are also other solutions on that post. – vancoder Jun 26 '14 at 20:35
  • @vancoder Thank you! You are right, but I like this solution and I hope it can be improved. – Iurie Malai Jun 27 '14 at 5:50
  • 1
    It looks like you're disabling all plugin updates this way, since $value is always a new empty object? – birgire Jun 27 '14 at 12:14
6

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' );
  • Thank you! I will test your improved code, but I discovered another way (see my 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. – Iurie Malai Jun 27 '14 at 5:53
1

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

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.