Extending 3rd party plugin class
-
Hello,
How to extend a 3rd party plugin class with a snippet or in functions.php of my theme? The original class in plugin file I would like to extend looks like this:
global $newsletter; class Newsletter extends NewsletterModule { static function instance() { if (self::$instance == null) { self::$instance = new Newsletter(); } return self::$instance; } function __construct() { add_action('newsletter', array($this, 'hook_newsletter'), 1); } function hook_newsletter() { $this->logger->debug('hook_newsletter> Start'); ... } } $newsletter = Newsletter::instance();My class in functions.php in my theme looks like this:
global $newsletter; class MyNewsletter extends Newsletter { static function instance() { if (self::$instance == null) { self::$instance = new MyNewsletter(); } return self::$instance; } function __construct() { parent::__construct(); $this->logger->debug('my hook_newsletter init'); remove_action( 'newsletter', array( 'Newsletter', 'hook_newsletter' ) ); add_action( 'newsletter', array( $this, 'hook_newsletter' ), 20 ); } function hook_newsletter() { $this->logger->debug('my hook_newsletter> Start'); } } $newsletter = MyNewsletter::instance();However when the action ‘newsletter’ is being invoked the original class function is used. What I am doing wrong?
Best regards,
Rob
The topic ‘Extending 3rd party plugin class’ is closed to new replies.