<?php class Hook_Manager { private $registered_hooks; public function __construct() { $this->registered_hooks = array(); } public function add_action($tag, $callable, $priority = 10, $accepted_args = 1) { $this->registered_hooks[$tag][] = array('priority' => $priority, 'callable' => $callable); add_action($tag, $callable, $priority, $accepted_args); } public function add_filter($tag, $callable, $priority = 10, $accepted_args = 1) { $this->registered_hooks[$tag][] = array('priority' => $priority, 'callable' => $callable); add_filter($tag, $callable, $priority, $accepted_args); } public function reset() { foreach ($this->registered_hooks as $tag => $hooks) { foreach ($hooks as $hook) { remove_filter($tag, $hook['callable'], $hook['priority']); } } $this->registered_hooks = array(); } }