mailerFactory = $mailerFactory; $this->mailerMetaInfo = $mailerMetaInfo; $this->settings = $settings; $this->subscribersRepository = $subscribersRepository; } public function replaceWordPressMailer() { global $phpmailer; // This code needs to be wrapped because it has to run in an early stage of plugin initialisation // and in some cases on multisite instance it may run before DB migrator and settings table is not ready at that time try { $sendTransactional = $this->settings->get('send_transactional_emails', false); } catch (\Exception $e) { $sendTransactional = false; } if ($sendTransactional) { $phpmailer = new WordPressMailer( $this->mailerFactory, $this->mailerMetaInfo, $this->subscribersRepository ); } return $phpmailer; } }