【发布时间】:2014-08-07 15:44:49
【问题描述】:
我一定是在想这个问题,但我似乎无法解决它。我需要覆盖 Mage_Sales_Model_Order 的 sendNewOrderEmail 函数。当我这样做时,我会在管理界面的下拉列表中丢失我的交易电子邮件模板。
错误:
Fatal error: Class 'Mage_Order_Helper_Data' not found
/app/code/local/Mine/Sales/etc/config.xml
<?xml version="1.0"?>
<config>
<global>
<models>
<sales>
<rewrite>
<order>Mine_Sales_Model_Order</order>
</rewrite>
</sales>
</models>
<helpers>
<sales>
<class>Mine_Sales_Helper</class>
</sales>
</helpers>
<template>
<email>
<umicrosite_order_alert module="order">
<label>Vendor Order Alert</label>
<file>umicrosite_order_alert.html</file>
<type>html</type>
</umicrosite_order_alert>
</email>
</template>
</global>
</config>
/app/code/local/Mine/Model/Sales/Order.php
<?php
class Mine_Sales_Model_Order extends Mage_Sales_Model_Order
{
/**
* Send email with order data
*
* @return Mage_Sales_Model_Order
*/
public function sendNewOrderEmail()
{
$storeId = $this->getStore()->getId();
$emailTemplate = Mage::getModel('core/email_template')->loadDefault('umicrosite_order_alert');
$emailTemplate->setSender(Mage::getStoreConfig(self::XML_PATH_EMAIL_IDENTITY, $storeId));
$emailTemplate->setSenderEmail(Mage::getStoreConfig('trans_email/ident_sales/email'));
$emailTemplate->setSenderName(Mage::getStoreConfig('trans_email/ident_sales/name'));
$emailTemplate->setType('html');
$emailTemplate->setTemplateSubject('New Order from my store');
$emails = array();
foreach ($this->getItemsCollection() as $item) {
$vendor = Mage::helper('udropship')->getVendor($item->getProduct());
$email = $vendor->getEmail();
if (!in_array($email,$emails)) {
$emails[] = $email;
$emailTemplateVariables = array();
$emailTemplateVariables = array('vendor_name'=>$vendor->getVendorName());
$emailTemplate->send($email, $vendor->getVendorName(), $emailTemplateVariables);
}
}
parent::sendNewOrderEmail();
}
}
/app/code/local/Mine/Sales/Helper/Data.php
<?php
class Mine_Sales_Helper_Data extends Mage_Sales_Helper_Data
{
}
如果我将 Data.php 更改为:
class Mage_Order_Helper_Data extends Mage_Core_Helper_Abstract
这会导致找不到“Mine_Sales_Helper_Data”类。
我做错了什么???
【问题讨论】:
-
您是否在模块中的任何地方使用了
Mage::Helper('something')? -
我将我的模块添加到问题详细信息中
-
所以在你的模型中,你有这个代码
Mage::helper('udropship')。这个助手是在哪里定义的?
标签: php magento magento-1.8