How to remove a WordPress action which uses the current object – $this?

Solution:1

Inside class

add_action( 'some_action_hook', array( $this, 'some_function' ) );

Outside class,

With use of global vairable:

global $my_class;
remove_action( 'some_action_hook', array( $my_class, 'some_function' ) );

Using class name:

remove_action( 'some_action_hook', array( 'MyClass', 'some_function' ) );

Solution:2

To extend on Rikesh answer: Sadly, using class name will not work. As it says on https://codex.wordpress.org/Function_Reference/remove_action

If an action has been added from within a class, for example by a plugin, removing it will require accessing the class variable.

This leaves only:

global $my_class;
remove_action( 'some_action_hook', array( $my_class, 'some_function' ) );

Or in case of a singleton class like Jetpack to remove the ‘show_development_mode_notice’ hook (for example) like this:

remove_action( 'jetpack_notices', array( Jetpack::init(), 'show_development_mode_notice' ) );

Inside class