2016-06-24 11 views
0

私はそれがうまくいかないことを知っていますが、私はsend sales関数に$ salesDataと$ salesData2をどう適合させることができますか?電子メールの関数と引数を送信する - Zendエラー "Subject set twice"

$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&&を持つ2つの配列をマージすることはできません。あなたの裁量で関数に

$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は "Subject set twice"と言っていますが、それは起動しません。 – thismethod

+0

私は上記の完全な機能を投稿しました。だから私はこの時点でリワークを最小限に抑えようとしている。 – thismethod

関連する問題