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' );
3
  • 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
    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.
    – Yuri
    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

2 Answers 2

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' );
1
  • 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.
    – Yuri
    Commented Jun 27, 2014 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 and acknowledge you have read our privacy policy.

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