我现在正在开展一个小项目,为 Magento CE 1.9.x 和 Aschroder的 SMTPPro 实施一个简单的黑名单邮件扩展。我一直处于几个不同的方向,起初认为我将不得不覆盖getTemplateSubject()
,并可能还有一些其他方法,以拦截外发电子邮件,因为我不相信那个(sans- SMTPPro )Magento有任何在发送电子邮件时触发的事件。作为旁注,非常感谢我对此帖中可能存在的任何误解进行更正。
所以我继续前进并专注于绑定到 SMTPPro 的aschroder_smtppro_before_send
事件以尝试触发我的代码。我想最终检查收件人地址,查找子字符串,并且可以在将来的某个时间点匹配该条件的任何电子邮件(可能向管理员发送消息)。但是现在,我甚至无法让代码给我一个var_dump
,只是知道它甚至会被解雇。我确实尝试将代码绑定到一个不同的事件,即一个点(即controller_action_predispatch
,它以我所投注的方式打破了网站),但我不知道在哪里让我留下了什么现在错了。除非我看到的文档不正确, SMTPPro 没有定义或触发事件。
所以这就是我所做的。
$ INST_HOME / app / code / local / Myorganization 中的我创建了树:
drwxrwsr-x 3 dgetsman src 4096 Jul 1 03:38 Core.bak drwxrwsr-x 2 scriptuser src 4096 7月2日20:57等drwxrwsr-x 2 scriptuser src 4096 7月1日01:24助手drwxrwsr-x 2 dgetsman src 4096 7月2日20:42 模型
Emailblacklist / Core.bak:总计4 drwxrwsr-x 2 dgetsman src 4096 Jul 2 20:30模特
Emailblacklist / Core.bak /型号:共4个 -rw-rw-r-- 1 dgetsman src 921 Jul 1 03:41 Email.php
Emailblacklist / etc:总共4个 -rw-rw-r-- 1 scriptuser src 998 Jul 2 20:57 config.xml
Emailblacklist / Helper:总共4个 -rw-rw-r-- 1 scriptuser src 86 Jul 1 01:24 Data.php
Emailblacklist / Model:共4个 -rw-rw-r-- 1 dgetsman src 201 Jul 2 02:05 Observer.php
请注意, Core.bak 只包含一些我正在尝试通过覆盖getTemplateSubject()
方法进行此操作的残留代码。
Emailblacklist / etc / config.xml 的内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<config>
<modules>
<Myorganization_Emailblacklist>
<version>0.1.0</version>
</Myorganization_Emailblacklist>
</modules>
<global>
<helpers>
<emailblacklist>
<class>Myorganization_Emailblacklist_Helper</class>
</emailblacklist>
</helpers>
<models>
<myorganization_emailblacklist>
<class>Myorganization_Emailblacklist_Model</class>
</myorganization_emailblacklist>
</models>
<events>
<!-- for debugging purposes
<controller_action_predispatch> -->
<aschroder_smtppro_before_send>
<observers>
<myorganization_emailblacklist>
<class>myorganization_emailblacklist/observer</class>
<method>watchEmails</method>
</myorganization_emailblacklist>
</observers>
</aschroder_smtppro_before_send>
<!-- debugging: </controller_action_predispatch> -->
</events>
</global>
</config>
Emailblacklist / Helper / Data.php 的内容如下:
<?php
class Uselite_Emailblacklist_Helper_Data extends Mage_Core_Helper_Abstract {
}
Emailblacklist / Model / Observer.php 的内容如下:
<?php
class Uselite_Emailblacklist_Model_Observer {
public function watchEmails(Varien_Event_Observer $observer) {
$order = $observer->getEvent();
die(var_dump($order));
}
}
从前面提到的代码可以假设,我希望此时只是为了获得$order
的转储。绝对有用的将是非常感谢。感谢您的时间和考虑。如果我忘记在此处添加任何有助于故障排除过程的信息,也请随时告诉我。
答案 0 :(得分:0)
IN config.xml
你可以试试吗
<events>
<aschroder_smtppro_before_send>
<observers>
<myorganization_emailblacklist_model_observer>
<type>singleton</type>
<class>Myorganization_Emailblacklist_Model_Observer</class>
<method>watchEmails</method>
</myorganization_emailblacklist_model_observer>
</observers>
</aschroder_smtppro_before_send>
</events>