Magento захватывает все электронные письма


Я хотел бы зафиксировать все события электронной почты в Magento до их отправки и запретить magento отправлять их. Я знаю, что могу отключить все электронные письма в разделе system > mail sending settings, но этого недостаточно. Я хочу отправить данные с этого электронного письма в другую систему. Что-то вроде этого:

  • Magento хочет отправить электронное письмо
  • Какой-то метод захватывает электронное письмо
  • Тот же метод запрещает magento отправлять электронное письмо
  • Тот же метод отправляет данные через api другому система

Как я могу этого добиться?

Author: John, 2016-12-01

1 answers

Я не знаю о enterprise edition, но я почти уверен, что в ce

Вы можете достичь этой функциональности, переписав эти классы

Mage_Core_Model_Email_Template и Mage_Core_Model_Email

В обоих классах вы найдете метод send, вам нужно переписать метод отправки. как показано ниже

public function send($email, $name = null, array $variables = array())
{ 
   Mage::dispatchEvent('email_template_send_before', array('email' => $this, 'email_to' => $email));
   $return = parent::send($email, $name, $variables);
   Mage::dispatchEvent('email_template_send_after', array('email' => $this, 'email_to' => $email));
   return $return;
}

После переписывания таким образом теперь у вас есть два события email_template_send_before и email_template_send_after

 0
Author: Murtuza Zabuawala, 2016-12-01 10:20:03