我试图让这个示例在成功注册后通过电子邮件发送给管理员。'我认为'我已经正确设置了......但确实没有发生:
配置.xml:
<?xml version="1.0"?>
<config>
<modules>
<WACI_CustomerExt>
<version>0.1.0</version>
</WACI_CustomerExt>
</modules>
<global>
<models>
<WACI_CustomerExt>
<class>WACI_CustomerExt_Model</class>
</WACI_CustomerExt>
</models>
<template>
<email>
<!-- regisration success -->
<notify_new_customer module="WACI_CustomerExt">
<label>Admin notification on registration success</label>
<file>notify_new_customer.html</file>
<type>html</type>
</notify_new_customer>
</email>
</template>
</global>
<frontend>
<events>
<!-- regisration success -->
<customer_register_success>
<observers>
<WACI_CustomerExt>
<type>model</type>
<class>waci_customerext/observer</class>
<method>customer_register_success</method>
</WACI_CustomerExt>
</observers>
</customer_register_success>
</events>
</frontend>
</config>
命名空间/模块/组/Observer.php
<?php
require_once('../../../../../Mage.php');
class WACI_CustomerExt_Model_Observer
{
public function __construct()
{
}
public function customer_register_success( Varien_Event_Observer $observer )
{
$emailTemplate = Mage::getModel('core/email_template')
->loadDefault('notify_new_customer');
$emailTemplate
->setSenderName(Mage::getStoreConfig('trans_email/ident_support/name'))
->setSenderEmail(Mage::getStoreConfig('trans_email/ident_support/email'))
->setTemplateSubject('New customer registered');
$result = $emailTemplate->send(Mage::getStoreConfig('trans_email/ident_general/email'),(Mage::getStoreConfig('trans_email/ident_general/name'), $observer->getCustomer()->getData());
}
}
本地/en_us/template/notify_new_customer.html
New customer registration:<br />
Name: {{var name}}<br />
Email: {{var email}}<br />
... you win a pickle.
有两件事看起来很可疑:我怀疑我的观察者在我的配置中设置是否正确。我希望我需要包含 app/mage.php (但在示例中它没有这样做)。
我在日志中没有收到任何错误,所以我假设事件没有得到注册或正确处理。
无论如何,在典型的 Magento 形式中,我的尝试是行不通的。
我很感激一些建议;D
干杯