我有一个自定义模块。哪个应该向客户发送一些数据。样本数据:
$log[] = array('pid' => '1000', 'price' => '0.00');
$this->sendMail($log);
我的senMail功能:
public function sendMail($mailMessage) {
$id_lang = (int) $this->context->language->id;
$iso_lang = Language::getIsoById($id_lang);
if (!is_dir(dirname(__FILE__) . '/mails/' . Tools::strtolower($iso_lang))) {
$id_lang = Language::getIdByIso('pl');
}
Mail::Send(
$id_lang,
'notification',
Mail::l('Notification from Hurto module', (int) $this->context->language->id),
array('{message}' => Tools::nl2br($mailMessage)),
Configuration::get('PS_SHOP_EMAIL'),
null,
null,
null,
null,
null,
_PS_MODULE_DIR_ . $this->name . '/mails/'
);
}
邮件已发送,但{message}未显示数组中的所有数据。在邮件中我只有一个值 - 1000。还有一件事。如何显示数组中的所有数据?
由于
---修改
Array ( [0] => Array ( [pid] => 1000 [price] => 0.00 ) )
答案 0 :(得分:2)
首先,您将数组传递给Tools :: nl2br,它只能用于字符串。
您有2个选项可以执行您想要的操作。在Mail :: Send之前格式化消息(但根据主题不能有不同的方面)或者将数组传递给smarty并在tpl中执行。
选项1:
public function sendMail($mailMessage) {
$id_lang = (int) $this->context->language->id;
$iso_lang = Language::getIsoById($id_lang);
if (!is_dir(dirname(__FILE__) . '/mails/' . Tools::strtolower($iso_lang))) {
$id_lang = Language::getIdByIso('pl');
}
$message = "";
foreach($mailMessage as $m){
$message .= "pid {$m['pid']} price {$m['price']}".PHP_EOL;
}
Mail::Send(
$id_lang,
'notification',
Mail::l('Notification from Hurto module', (int) $this->context->language->id),
array('{message}' => Tools::nl2br($message)),
Configuration::get('PS_SHOP_EMAIL'),
null,
null,
null,
null,
null,
_PS_MODULE_DIR_ . $this->name . '/mails/'
);
}
选项2:
public function sendMail($mailMessage) {
$id_lang = (int) $this->context->language->id;
$iso_lang = Language::getIsoById($id_lang);
if (!is_dir(dirname(__FILE__) . '/mails/' . Tools::strtolower($iso_lang))) {
$id_lang = Language::getIdByIso('pl');
}
Mail::Send(
$id_lang,
'notification',
Mail::l('Notification from Hurto module', (int) $this->context->language->id),
array('{message}' => $mailMessage),
Configuration::get('PS_SHOP_EMAIL'),
null,
null,
null,
null,
null,
_PS_MODULE_DIR_ . $this->name . '/mails/'
);
}
在tpl:
{foreach from=$message item=m}
{$m['pid']} - {$m['price']} <br />
{/foreach}