2016-06-24 20 views
0

我知道它不起作用,但我如何将$ salesData和$ salesData2放入发送电子邮件功能?发送电子邮件功能和参数 - Zend错误“主题设置两次”

$salesData['email'] = Mage::getStoreConfig('trans_email/ident_custom3/email'); 
$salesData['name'] = Mage::getStoreConfig('trans_email/ident_custom3/name'); 
$salesData2['email'] = Mage::getStoreConfig('trans_email/ident_custom4/email'); 
$salesData2['name'] = Mage::getStoreConfig('trans_email/ident_custom4/name'); 

有没有办法像这样做?

$emailTemplate->send($salesData && $salesData2, $product->getStoreId(), $emailTemplateVariables); 

看起来很简单,但我的大脑今天不工作。上述不起作用。

我也试过一个foreach像这样:

$emails = (Mage::getStoreConfig('trans_email/ident_custom4/email')) && (Mage::getStoreConfig('trans_email/ident_custom3/email')); 

foreach ($emails as $email) $emailTemplate->send($email, $product->getStoreId(), $emailTemplateVariables); 

全部方法:

private function _sendStatusMail($product) 
    { 
     $emailTemplate = Mage::getModel('core/email_template'); 
     $emailTemplate->loadDefault('elic_productnotification_tpl'); 
     $emailTemplate->setTemplateSubject('Product has been disabled'); 

     $salesData['email'] = Mage::getStoreConfig('trans_email/ident_custom3/email'); 
     $salesData['name'] = Mage::getStoreConfig('trans_email/ident_custom3/name'); 
     $salesData2['email'] = Mage::getStoreConfig('trans_email/ident_custom4/email'); 
     $salesData2['name'] = Mage::getStoreConfig('trans_email/ident_custom4/name'); 

     $emailTemplate->setSenderName($salesData['name']); 
     $emailTemplate->setSenderEmail($salesData['email']); 
     $emailTemplate->setSenderName($salesData2['name']); 
     $emailTemplate->setSenderEmail($salesData2['email']); 

     $emailTemplateVariables['style_number'] = $product->getElicStyle(); 
     $emailTemplateVariables['frame_color'] = $product->getAttributeText('frame_color'); 
     $emailTemplateVariables['size']   = $product->getAttributeText('size'); 
     $emailTemplateVariables['elic_color'] = $product->getAttributeText('elic_color'); 
     $emailTemplateVariables['store_name']  = Mage::getModel('core/store')->load($product->getStoreId())->getName(); 
     $emailTemplateVariables['product_name'] = Mage::getModel('catalog/product')->load($product->getId())->getName(); 
     $emailTemplateVariables['product_sku'] = $product->getSku(); 
     $emailTemplateVariables['dates']   = date("F jS Y h:i:sA", strtotime('-7 hours')); 

     $email = (Mage::getStoreConfig('trans_email/ident_custom3/email')); 
     foreach ($emails as $email) $emailTemplate->send($email, $product->getStoreId(), $emailTemplateVariables); 
    } 

回答

0

你不能用一个logical AND&&合并两个数组。

相反,使用两个循环,而不是:

$emailsA = Mage::getStoreConfig('trans_email/ident_custom4/email'); 
$emailsB = Mage::getStoreConfig('trans_email/ident_custom3/email'); 

foreach ($emailsA as $email) $emailTemplate->send($email, $product->getStoreId(), $emailTemplateVariables); 
foreach ($emailsB as $email) $emailTemplate->send($email, $product->getStoreId(), $emailTemplateVariables); 

提取重复的代码到功能,由您自行决定。

+0

真的吗?这可能是我正在寻找的东西,我应该知道......这似乎是合乎逻辑的。让我快速测试它。 – thismethod

+0

我得到了一个错误:警告:为foreach提供的无效参数() – thismethod

0

这样的事情可能会有所帮助。

function mail_walk($name,$body,$subject,$email) { 
$emailTemplate = Mage::getModel('core/email'); 
$emailTemplate->setFromName($name); 
$emailTemplate->setBody($body); 
$emailTemplate->setSubject($subject); 
$emailTemplate->setType('html'); 
$emailTemplate->setToEmail($email); 
$emailTemplate->send(); 
} 

$salesData[0]['name'] = Mage::getStoreConfig('trans_email/ident_custom3/name'); 
$salesData[0]['email'] = Mage::getStoreConfig('trans_email/ident_custom3/email'); 
$salesData[1]['name'] = Mage::getStoreConfig('trans_email/ident_custom4/name'); 
$salesData[1]['email'] = Mage::getStoreConfig('trans_email/ident_custom4/email'); 

foreach ($salesData as $data) { 
mail_walk($data['name'],'email body here...','Subject in here...',$data['email']); 
} 
+0

谢谢,让我看看你在这里做了什么。 =] – thismethod

+0

感谢分享,我已经有一个私人功能,我想保留。问题出在后端/管理员......电子邮件地址由于爆炸而抛出并出错。 Zend说“主题设置了两次”并且它不会触发。 – thismethod

+0

我发布了上面的全部功能。所以我想尽量减少返工在这一点上。 – thismethod