По умолчанию «Битрикс» включает шаблоны отправки писем с подтверждением заказа. Однако оформление этих шаблонов довольно примитивно, да и хочется внести элементы фирменного стиля. Как кастомизировать шаблон отправки писем покупателям?
1. Где вносить изменения?
Найдите файл init.php по адресу /bitrix/php_interface/
2. Какой код добавить?
Нам надо откорректировать список заказов ORDER_LIST. Используем для этого обработчик OnOrderNewSendEmail. Вставим в найденный файл init.php код:
AddEventHandler('sale', 'OnOrderNewSendEmail', array('CSendOrderTable', 'OnOrderNewSendEmailHandler'));
class CSendOrderTable {
public static function OnOrderNewSendEmailHandler($ID, &$eventName, &$arFields) {
if ($ID>0 && CModule::IncludeModule('iblock')) {
$arFields['ORDER_LIST'] = '<table cellpadding="5" cellspacing="5">';
$rsBasket = CSaleBasket::GetList(array(), array('ORDER_ID' => $ID));
while ($arBasket = $rsBasket->GetNext()) {
$arPicture = false;
//мы берем картинку только если это товар из инфоблока
if ($arBasket['MODULE'] == 'catalog') {
if ($arProduct = CIBlockElement::GetByID($arBasket['PRODUCT_ID'])->Fetch()) {
if ($arProduct['PREVIEW_PICTURE'] > 0) {
$fileID = $arProduct['PREVIEW_PICTURE'];
} elseif ($arProduct['DETAIL_PICTURE'] > 0) {
$fileID = $arProduct['DETAIL_PICTURE'];
} else {
$fileID = 0;
}
$arPicture = CFile::ResizeImageGet($fileID, array('width' => 90, 'height' => 110));
$arPicture['SIZE'] = getimagesize($_SERVER['DOCUMENT_ROOT'].$arPicture['src']);
}
}
$arFields['ORDER_LIST'] .= '<tr valign="top">'
. '<td>'.($arPicture ? '<img src="http://'.$GLOBALS['SERVER_NAME'].(str_replace(array('+', ' '), '%20', $arPicture['src'])).'" width="'.$arPicture['SIZE'][0].'" height="'.$arPicture['SIZE'][1].'" alt="">' : '').'</td>'
. '<td>'.$arBasket['NAME'].'</td>'
. '<td style="white-space: nowrap">'.(int)$arBasket['QUANTITY'].' шт.</td>'
. '<td style="white-space: nowrap">'.SaleFormatCurrency($arBasket['PRICE'], $arBasket['CURRENCY']).'</td>'
. '</tr>';
}
$arFields['ORDER_LIST'] .= '</table>';
}
}
}
Готово!
Назад в раздел