Remove action from a plugin class, forced to use global instance

Because these are not the same, and mean different things:

  • array( $this, 'method' ) = $this->method();
  • array( 'classname', 'method' ) = classname::method();

One calls a method on an object, the other calls a static method on a class.

Since what you’re trying to unhook is not a static method, you need a reference to the object, hence why your second example works, and the first doesn’t.