Меняем нумерацию заказов в minishop2
Необходимо переопределить функцию getNum(), которая отвечает за получение порядкового номера.
Изначально она формирует номер по формату «годмесяц/порядковый номер». Каждый месяц нумерация будет начинаться с 1.
Для переопределения создаем файл с названием, напрмиер, myorderhandler.php и размещает по адресу
/core/components/minishop2/custom/order/myorderhandler.php
Содержимое будет иметь вид
Этот пример будет генерировать номера по порядку, без учета месяца и года, номер будет только возрастать.
Также потребуется зарегистрировать новый класс. Для этого необходимо запустить компонент Console и выполнить код:
Изначально она формирует номер по формату «годмесяц/порядковый номер». Каждый месяц нумерация будет начинаться с 1.
Для переопределения создаем файл с названием, напрмиер, myorderhandler.php и размещает по адресу
/core/components/minishop2/custom/order/myorderhandler.php
Содержимое будет иметь вид
<?php
if (!class_exists('msOrderInterface')) {
require_once dirname(dirname(dirname(__FILE__))) . '/model/minishop2/msorderhandler.class.php';
}
class myOrderHandler extends msOrderHandler {
/**
* Return current number of order
*
* @return string
*/
public function getNum()
{
$num = 0;
$c = $this->modx->newQuery('msOrder');
$c->select('num');
$c->sortby('id', 'DESC');
$c->limit(1);
if ($c->prepare() && $c->stmt->execute()) {
$num = $c->stmt->fetchColumn();
}
$num++;
return $num;
}
}
Этот пример будет генерировать номера по порядку, без учета месяца и года, номер будет только возрастать.
Также потребуется зарегистрировать новый класс. Для этого необходимо запустить компонент Console и выполнить код:
if ($miniShop2 = $modx->getService('miniShop2')) {
$miniShop2->addService('order', 'myOrderHandler',
'{core_path}components/minishop2/custom/order/myorderhandler.php'
);
}
переходим в системные настройки MiniShop2, и там указываем имя вашего класса не хватает.