Добавление комментария при оформлении заказа — различия между версиями

Материал из Umicms
Перейти к:навигация, поиск
 
Строка 1: Строка 1:
'''Актуально для версии 20.'''<br/>
+
'''Актуально для версии 20.'''
  
'''Задача:''' Реализовать возможность добавления покупателю комментария к заказу<br/>
+
== Задача ==
  
'''Реализация:'''
+
Реализовать возможность добавления покупателю комментария к заказу<br/>
 +
 
 +
== Решение ==
 
В модуле "Шаблоны данных" откроем на редактирование тип данных "Заказ" и в группу "Свойства заказа" добавим поле с названием "Комментарий", с идентификатором 'comment' и типом "Простой текст". Далее в шаблон, который формирует отображение корзины с товарами, рядом с кнопкой "Оформить заказ" пропишем следующее поле:
 
В модуле "Шаблоны данных" откроем на редактирование тип данных "Заказ" и в группу "Свойства заказа" добавим поле с названием "Комментарий", с идентификатором 'comment' и типом "Простой текст". Далее в шаблон, который формирует отображение корзины с товарами, рядом с кнопкой "Оформить заказ" пропишем следующее поле:
 
<pre>
 
<pre>
Строка 22: Строка 24:
 
Далее, в файле  '''~/classes/components/emarket/customMacros.php''' добавляем код следующего метода:
 
Далее, в файле  '''~/classes/components/emarket/customMacros.php''' добавляем код следующего метода:
 
<source lang="php">
 
<source lang="php">
  public function purchasecomment(){
+
public function purchasecomment(){
 
     $comment = htmlspecialchars(getRequest('comment'));
 
     $comment = htmlspecialchars(getRequest('comment'));
 
     $ini = cmsController::getInstance()->getModule('emarket');
 
     $ini = cmsController::getInstance()->getModule('emarket');
Строка 30: Строка 32:
 
     $order->commit();
 
     $order->commit();
 
     $ini->redirect('/emarket/purchase/');
 
     $ini->redirect('/emarket/purchase/');
  }
+
}
 
</source>
 
</source>
  
Строка 37: Строка 39:
 
<source lang="php">
 
<source lang="php">
 
<?php
 
<?php
$permissions = array('purchasing' => array('purchasecomment'));
+
    $permissions = array('purchasing' => array('purchasecomment'));
 
?>
 
?>
 
</source>
 
</source>

Текущая версия на 07:53, 17 мая 2019

Актуально для версии 20.

Задача

Реализовать возможность добавления покупателю комментария к заказу

Решение

В модуле "Шаблоны данных" откроем на редактирование тип данных "Заказ" и в группу "Свойства заказа" добавим поле с названием "Комментарий", с идентификатором 'comment' и типом "Простой текст". Далее в шаблон, который формирует отображение корзины с товарами, рядом с кнопкой "Оформить заказ" пропишем следующее поле:

<span>Ваш комментарий:</span>
<textarea style="width: 300px; height: 50px;" name="comment"/></textarea>

Также необходимо поменять action формы с:

/emarket/purchase/

на:

/emarket/purchasecomment/


Далее, в файле ~/classes/components/emarket/customMacros.php добавляем код следующего метода:

public function purchasecomment(){
    $comment = htmlspecialchars(getRequest('comment'));
    $ini = cmsController::getInstance()->getModule('emarket');

    $order = $ini->getBasketOrder(false);
    $order->setValue('comment', $comment);
    $order->commit();
    $ini->redirect('/emarket/purchase/');
}


В директории ~/classes/components/emarket/ создаем файл permissions.custom.php со следующим содержанием:

<?php
    $permissions = array('purchasing' => array('purchasecomment'));
?>

Теперь при оформлении заказа пользователь сможет оставить комментарий к заказу. При просмотре заказа в административной части, комментарий будет отображаться в блоке "Свойства заказа".