我已經創建了一個事件觀察者,它將在訂單完成時發送電子郵件。 當從類別1訂購產品並且在從產品2訂購產品時將電子郵件發送到email_address2時,我正在向email_address1發送電子郵件。因此我爲此創建了一個觀察者事件。magento sales_order_place_after觀察員不工作
但是,當我點擊「下單」按鈕時,什麼也沒有發生。問題是什麼?
在Magento /應用程序的/ etc /模塊/ Custom_Email.xml:
<?xml version="1.0"?>
<config>
<modules>
<Custom_Email>
<codePool>local</codePool>
<active>true</active>
</Custom_Email>
</modules>
</config>
在Magento
/應用/代碼/本地/自定義/電子郵件的/ etc/config.xml文件:
<?xml version="1.0"?>
<config>
<global>
<models>
<customemail>
<class>Custom_Email_Model</class>
</customemail>
</models>
<events>
<sales_order_place_after>
<observers>
<custom_email_order_observer>
<type>singleton</type>
<class>customemail/order_observer</class>
<method>sendOrder</method>
</custom_email_order_observer>
</observers>
</sales_order_place_after>
</events>
</global>
</config>
在Magento /應用/代碼/本地/自定義/電子郵件/型號/訂購/ Observer.php:
<?php
class Custom_Email_Model_Order_Observer
{
public function __contruct()
{
}
/**
* Exports new orders to an xml file
* @param Varien_Event_Observer $observer
* @return Feed_Sales_Model_Order_Observer
*/
public function sendOrder($observer){
$order = $observer->getEvent()->getOrder();
$cat_id = Mage::getModel('catalog/layer')->getCurrentCategory()->getId();
echo $cat_id;
//Implement logic here
...
$emailTemplate = Mage::getModel('core/email_template')
->loadDefault('rehab');
$emailTemplateVariables = array();
$emailTemplateVariables['order'] = $order;
$emailTemplate->setSenderName('Your shops name');
$emailTemplate->setSenderEmail('[email protected]');
$emailTemplate->setTemplateSubject('Subject');
$emailTemplate->send('[email protected]','Name', $emailTemplateVariables);
echo 'email sent';
}
}
?>
因此,任何一個知道問題出在哪裏?
你檢查過你的觀察員嗎? (舉個例子)。你的日誌裏有什麼嗎? – OSdave
@sidrasultana:請更精確地定義「沒有任何反應」。 –
@OSdave:我將如何檢查我的觀察員被稱爲? – Ahmad