Перейти к содержимому


Вывод имени администратора при смене статуса заказа, а также отправка сообщения администратору о новом отзыве о товаре


  • Вы не можете ответить в тему
Сообщений в теме: 2

#1 ssergioss25

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 56 сообщений
Репутация: 24
Ассистент
  • ГородСПБ

Отправлено 25 February 2013 - 04:18 PM

Несколько небольших, но,на мой взгляд, полезных доработок.

1. Возможность в админке,в теле заказа просматривать автора изменения статуса заказа. Полезно, если в магазине несколько администраторов обрабатывают заказы. При новом заказе выводится логин пользователя (или пустое поле, если пользователь не зарегестрирован), оформившего заказ. В дальнейшем выводится логин админа, менявшего статус.

1.1 В таблице ORDER_STATUS_CHANGE_LOG_TABLE прямым запросом или через phpmyadmin создаем еще одно поле, например, 'admin_name'
1.2 В файле statistic_functions.php в функции stChangeOrderStatus меняем код :
$sql =  "insert into ".ORDER_STATUS_CHANGE_LOG_TABLE.
				" ( orderID, status_name, status_change_time, status_comment ) ".
				" values( ".(int)$orderID.", '".xToText($status_name)."', '".
						xEscSQL(get_current_time())."', '".xToText(trim($comment))."' ) ";
		db_query($sql);
на :
	   $sql =  "insert into ".ORDER_STATUS_CHANGE_LOG_TABLE.
				" ( orderID, status_name, status_change_time, status_comment, admin_name) ".
				" values( ".(int)$orderID.", '".xToText($status_name)."', '".
						xEscSQL(get_current_time())."', '".xToText(trim($comment))."', '".$_SESSION["log"]."' ) ";
		db_query($sql);

1.3 В файле statistic_functions.php в функции stGetOrderStatusReport меняем код :
$q = db_query( "select orderID, status_name, status_change_time, status_comment from ".
				ORDER_STATUS_CHANGE_LOG_TABLE." where orderID=".(int)$orderID);
		$data = array();
на :
$q = db_query( "select orderID, status_name, status_change_time, status_comment, admin_name from ".
				ORDER_STATUS_CHANGE_LOG_TABLE." where orderID=".(int)$orderID);
		$data = array();

1.4 В файле custord_new_orders.tpl после строк :
<td align="right" class="toph3">{if  $order_status_report[i].status_name != 'STRING_CANCELED_ORDER_STATUS'}{$order_status_report[i].status_name}{else}{$smarty.const.STRING_CANCELED_ORDER_STATUS}{/if}&nbsp;</td>
вставляем :
<td align="right" class="toph3">{$order_status_report[i].admin_name}</td>

2.Отправка сообщения администратору о новом отзыве.

2.1 В product_discussion.php перед строкой :
if (isset($_SESSION["log"])) {
добавляем :
$discuss_info = 'Пользователь '.$_POST["nick"].' написал отзыв на сайте <a href="'.CONF_FULL_SHOP_URL.'product_'.$productID.'.html">о товаре</a><br><br>'.$_POST["body"].'';

2.2 Везде, где есть строка (их может быть несколько) :
discAddDiscussion( $productID, $_POST["nick"], $_POST["topic"], $_POST["body"] );
сразу после нее вставляем :
xMailTxtHTMLDATA(CONF_GENERAL_EMAIL, "Новый отзыв о товаре", $discuss_info);

Надеюсь, кому нибудь пригодится :)
  • 1

#2 Salp

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 218 сообщений
Репутация: 54
Продвинутый

Отправлено 12 March 2013 - 11:43 AM

Начиная с пункта 2, очень пригодилось!
только эту часть:
после
	    if (isset($_POST["add_topic"]) && isset($productID)) // add post to the product discussion
	    {
вставил в самом начале product_discussion.php, иначе не работало
$discuss_info = 'Пользователь '.$_POST["nick"].' написал отзыв на сайте <a href="'.CONF_FULL_SHOP_URL.'product_'.$productID.'.html">о товаре</a><br><br>'.$_POST["body"].'';

  • 0

#3 ssergioss25

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 56 сообщений
Репутация: 24
Ассистент
  • ГородСПБ

Отправлено 12 March 2013 - 02:04 PM

Ну, если вставили сразу после
if (isset($_POST["add_topic"]) && isset($productID)) // add post to the product discussion
		    {
то это роли не играет. Считайте, просто переместили присвоение переменной чуть выше ) Не работать у вас могло только если вы, все таки, немного ошиблись со строкой, куда нужно было вставлять переменную, или же, если product_discussion.php уже подвергался изменениям.
А вот если вставили до (как вы пишите "вставил в самом начале product_discussion.php"), то это, помоему, зря. В этом случае значение переменной будет присваиваться всегда, даже когда нет никакого добавления отзыва.
  • 0