пятница, 3 августа 2018 г.

Битрикс - добавление в почтовый шаблон номера телефона

Вводная: Необходимо добавить номер телефона и адрес клиента в письмо от интернет-магазина битрикса (о новом заказе).

Решение:
1) Добавляем в /bitrix/php_interface/init.php код

<?
 AddEventHandler("sale", "OnOrderNewSendEmail", "ModifySaleMails");
 
 function ModifySaleMails($orderID, &$eventName, &$arFields)
 {
    $arOrder = CSaleOrder::GetByID($orderID);  
 
    $order_props = CSaleOrderPropsValue::GetOrderProps($orderID);  
 
    $phone = ""; 
    $address = "";
 
    while ($arProps = $order_props->Fetch()){    
      if ($arProps["CODE"] == "PHONE"){
          $phone = htmlspecialchars($arProps["VALUE"]);}
 
      if ($arProps["CODE"] == "ADDRESS"){
         $address = htmlspecialchars($arProps["VALUE"]);}
    }
 
  if (!empty($arOrder["USER_DESCRIPTION"])){
      $arFields["DESCRIPTION"] = $arOrder["USER_DESCRIPTION"];}
 
    //-- добавляем новые поля в массив результатов
    $arFields["PHONE"] =  $phone;
    $arFields["ADDRESS"] = $address;
 }
?>

2) Добавляем в почтовый шаблон ИМЯСАЙТА/bitrix/admin/message_admin.php
(я добавлял в шаблон "[SALE_NEW_ORDER] Новый заказ")

Доставка по адресу: #ADDRESS#<br />
Ваш контактный телефон: #PHONE#<br />

Должно получится как-то так



3) Результат

3 комментария:

  1. после обновления все это слетит?

    ОтветитьУдалить
  2. Спасибо Вам! Работает даже в 2020 году))

    ОтветитьУдалить
  3. Спасибо за решение.
    Если телефон приходит, а адрес - нет, то в чем может быть проблема?

    ОтветитьУдалить