0

我试图让这个示例在成功注册后通过电子邮件发送给管理员。'我认为'我已经正确设置了......但确实没有发生:

配置.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

干杯

4

1 回答 1

1

日志记录肯定会产生包含错误

Failed opening 'Mage/Waci/Customerext/Model/Observer.php'

显然,我的课堂参考需要正确的案例。

<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>

此外,就在这里的 send() 调用中出现了轻微的语法错误:/email'),(Mage::getSt

无论如何,像往常一样,配置是我的问题。

于 2012-09-18T22:59:19.380 回答