Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to remove an action added through a class

Tags:

php

wordpress

I'm trying to remove an action that a plugin registers in a separate functions.php file, but the syntax is stumping me. The plugin (I can't copy/paste - commercial plugin) infers to the add_action like so:

class Plugin_Class{

  function add_actions(){
    add_action('tag', array(&$this, 'function_to_remove'), 10); 
  }

  function_to_remove(){
    global $wp;
    // Code here
  }
}

I'm mostly confused with &$this. I know that this refers to the instance of the class, but based off my research it should be removed like so:

Need help with remove_action()

I just don't know how to come up with the syntax for my situation. Why define the global variable? Would I need to do that in my case? I'm assuming the widget array comes from WP core code, but I'm confused on how I need to implement this in my case, which seems to be much simpler. Sorry if this stuff is remedial.

Thanks for any help in advance.

like image 676
Steve Avatar asked Jan 19 '12 10:01

Steve


1 Answers

The &$this creates a reference instead of a copy. That way when you access that variable later, you really access this object and not a copy.

http://www.php.net/manual/en/language.references.whatdo.php

See the paragraph about array "not exactly assigning by reference, but equivalent."

like image 149
Alexis Wilke Avatar answered Oct 05 '22 07:10

Alexis Wilke