【问题标题】:Send invoice email to custom mail address in magento将发票电子邮件发送到 magento 中的自定义邮件地址
【发布时间】:2015-10-19 19:08:04
【问题描述】:

我添加了自定义功能,可以将发票电子邮件发送到其他一些邮件地址(不包括客户和管理员)。为此,我在观察者中调用了自定义函数

<sales_order_invoice_save_after>
    <observers>
       <test>
          <type>singleton</type>
          <class>test/observer</class>
          <method>sentMailToothers</method>
       </test>
   </observers>        

观察者代码

  $template_id    =   'sales_email_invoice_template';
  $emailTemplate  =   Mage::getModel('core/email_template')->loadDefault($template_id);
  $storeId =   Mage::app()->getStore()->getStoreId();
  $invoice =   $observer->getEvent()->getInvoice();  
  $order   =   $observer->getEvent()->getInvoice()->getOrder();
if ($order->hasInvoices()) 
            {
                foreach ($order->getInvoiceCollection() as $inv) 
                {
                    $paymentBlock = Mage::helper('payment')->getInfoBlock($order->getPayment())->setIsSecureMode(true);
                    $paymentBlockHtml = $paymentBlock->toHtml();

                    $email_to = 'test@test.com';//dynamic email address
                    $customer_name = 'Test'
                    $email_template_variables = array(
                                                    'order' => $order,
                                                    'invoice' => $invoice,
                                                    'payment_html' => $paymentBlockHtml
                                                    );

                    $sender_name = Mage::getStoreConfig(Mage_Core_Model_Store::XML_PATH_STORE_STORE_NAME);
                    $sender_email = Mage::getStoreConfig('trans_email/ident_general/email');
                    $emailTemplate->setSenderName($sender_name);
                    $emailTemplate->setSenderEmail($sender_email);
                    $processedTemplate = $emailTemplate->getProcessedTemplate($email_template_variables);

                    echo $processedTemplate;die;
                    //Send the email!
                    $emailTemplate->send($email_to, $customer_name, $email_template_variables);
                }
            }

一切正常,除了模板中没有显示产品信息。

有人能弄清楚我做错了什么吗?

【问题讨论】:

  • 你解决了吗?

标签: magento


【解决方案1】:

不需要此代码。在 magento 中具有将发票电子邮件发送到密件抄送的默认功能。

转到管理->系统(主导航)->配置(子导航)->销售电子邮件->发票(选项卡)->字段“将发票电子邮件复制到”。

请查看下面的截图。

【讨论】:

  • 我知道这件事。但是我不能以这种方式传递电子邮件地址。它将所有邮件发送到特定地址。但我只想将邮件发送到特定地址。更重要的是,邮件将按照自定义逻辑发送到动态地址。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-04
  • 1970-01-01
  • 2013-07-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多