Добавляем скрытые свойства заказа со значениями по умолчанию

Задача: создать свойство заказа "Источник заказа". Свойство должно быть типа Select со значением по умолчанию "Корзина".

В Битриксе для скрытия свойства заказа от пользователя существует галочка - "Служебное", а для выставления какого либо значения по умолчанию для поля типа SELECT достаточно вписать его код в поле "Значение по умолчанию".

Все бы ничего, но значение по умолчанию для служебных полей выставляется только когда заказ создается через администативную панель, но не пользователем через публичную часть сайта.

Чтобы значение по умолчанию выставлялось в обоих случаях и не было видно пользователю, создадим группу свойств заказа с названием "Скрытые" и снимем галочку с поля "Служебное" и добавим в шаблон оформления заказа условие "Если поле из группы скрытых то делаем невидимым".

Шаблон по умолчанию bitrix/components/bitrix/sale.order.ajax/templates/.default/props.php

<?foreach($arSource as $arProperties)
{
   if('Скрытые' == $arProperties["GROUP_NAME"]){$isHidden = true;}else{ $isHidden = false;}

   if($arProperties["SHOW_GROUP_NAME"] == "Y")
   {
      ?>
      <tr <?if($isHidden) echo 'style="display: none;"'?>>
         <td colspan="2">
            <b><?= $arProperties["GROUP_NAME"] ?></b>
         </td>
      </tr>
      <?
   }
   ?>
   <tr <?if($isHidden) echo 'style="display: none;"'?>>
...
...
?>

Таким образом можно создать любое скрытое поле со значением по умолчанию для любой группы пользователей.

Комментарии (2)

  1. Mark 05.05.2016 Ответить
    Забавный финт ушами (:
    Спасибо, пригодилось.
  2. ОО 06.04.2017 Ответить
    Спасибо! Долго мучился не мог понять почему служебно поле не отображается..

Оставить комментарий