Используйте remove_action, получив доступ к классу, который был инициирован другим классом - PHP - PullRequest
0 голосов
/ 25 февраля 2020

У меня такая ситуация в плагине WordPress -

Это родительский класс плагина -

class parent_class {
   public function __construct() {
      $this->initiate();
  }
   public static function init() {
        $instance = new parent_class ();
        return $instance;
  }

  public function initiate() {
        new child_class();
    }
}

Дочерний класс определен в другом файле -

class child_class {
    public function __construct() {
       add_action( 'action_from_other_plugin', array( $this, 'function_i_want_to_remove' ), 32 );
    }
}

Теперь моя цель состоит в том, чтобы удалить действие как это -

remove_action( 'action_from_other_plugin', array( child_class::init(), 'function_i_want_to_remove' ), 3200 );

К сожалению, это дает ошибку, что это неопределенная функция. Чего мне не хватает в этом случае?

1 Ответ

0 голосов
/ 25 февраля 2020

Вам не нужно добавлять класс для действия удаления. Вы можете просто сделать:

remove_action( 'action_from_other_plugin', 'function_i_want_to_remove');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...