Magento订单成功之后,或是有新的订单在MAGENTO1.9.1版本中不发送相应的邮件及抄送邮件至管理员邮箱 这个问题是今天我们的一个客户从1.7升级到1.9.1.1时发现的,后来听技术人员说,此问题是由于MAGENTO更改了系统本身的邮件发送方式,所有的这类事情处理都交给了 cron.php这个文件来完成 ,但是并不是所有的用户把此文件设置为隔一些时间就执行一次,因此还是需要在客户量不大的情况下使用立即触发式的邮件发送方式 您只需要修改 app/code/core/Mage/Core/Model/Email/Template.php 下的大约407行 if($this->hasQueue() && $this->getQueue() instanceof Mage_Core_Model_Email_Queue) { 为 if(!($this->hasQueue() && $this->getQueue() instanceof Mage_Core_Model_Email_Queue)) { 这样子修改之后我们测试发现在后台添加SHIPPINGMENT信息的时候会出现空白页面,打开错误提示就可以看到 Fatal error: Call to a member function setMessageBody() on a non-object in public_html/app/code/core/Mage/Core/Model/Email/Template.php on line 410
那么终极的解决文案是 if (false) {
或者是修改 app\code\core\Mage\Sales\Model\Order.php 所有的 $mailer->setQueue($emailQueue)->send(); 为 $mailer->send();(责任编辑:好模板) |