Как и где формируется номер заказа в MiniShop2
MiniShop 2.1.1 pl2
Однажды мне нужно было изменить принцип формирования номеров заказа в MiniShop2
core/components/minishop2/model/minishop2/msorderhandler.class.php:459
/**
* Return current number of order
*
* @return string
*/
public function getnum() {
$table = $this->modx->getTableName('msOrder'); // получаем имя таблицы
$cur = date('ym'); // получаем текущий год и месяц в формате yymm
$sql = $this->modx->query("SELECT `num` FROM {$table} WHERE `num` LIKE '{$cur}%' ORDER BY `id` DESC LIMIT 1");
// делаем запрос в БД и получаем последнюю запись, схожую по формату с тем, что содержится в $cur
$num = $sql->fetch(PDO::FETCH_COLUMN);
if (empty($num))
{$num = date('ym').'/0';} // если запрос не дал результатов, то запись в текущем месяце, текущего года будет первая
$num = explode('/', $num);
$num = $cur.'/'.($num[1] + 1);
return $num;
}

Comments
Post a Comment