Magento захватывает все электронные письма
Я хотел бы зафиксировать все события электронной почты в Magento до их отправки и запретить magento отправлять их.
Я знаю, что могу отключить все электронные письма в разделе system > mail sending settings
, но этого недостаточно. Я хочу отправить данные с этого электронного письма в другую систему.
Что-то вроде этого:
- Magento хочет отправить электронное письмо
- Какой-то метод захватывает электронное письмо
- Тот же метод запрещает magento отправлять электронное письмо
- Тот же метод отправляет данные через api другому система
Как я могу этого добиться?
1
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