Долго меняется заказ в minishop2
Добрый день.
Задача: находим заказ текущего пользователя с определенным статусом и способом оплаты. Затем меняем статус заказа на другой. Проблема в том, что отрабатывает сниппет очень долго.
Есть сниппет msPayConfirmSberbank:
Задача: находим заказ текущего пользователя с определенным статусом и способом оплаты. Затем меняем статус заказа на другой. Проблема в том, что отрабатывает сниппет очень долго.
Есть сниппет msPayConfirmSberbank:
<?php
/**
* @var $modx modX
* @var $miniShop2 miniShop2
* @var $payment_id int ID оплаты (в нашем случае указать Сбербанк)
* @var $user_id int ID текущего пользователя
* @var $order_id int ID заказа
* @var $status_id int ID статуса заказа, нужно отображать только новые заказы!
* @var $new_status_id int ID статуса заказа, нужно отображать только новые заказы!
*/
$user_id = $modx->getUser()->get('id');
if (empty($order_id)) {$order_id = $_GET['msorder']; }
$q = $modx->newQuery('msOrder');
$q->select(array(
'msOrder.*'
));
$q->where(array(
'id' => $order_id,
'user_id' => $user_id,
'payment' => $payment_id,
'status' => $status_id
));
$order = $modx->getObject('modResource',$q);
if ($order) {
$miniShop2 = $modx->getService('minishop2','miniShop2',$modx->getOption('minishop2.core_path',null,$modx->getOption('core_path').'components/minishop2/').'model/minishop2/', array());
$miniShop2->changeOrderStatus($order->get('id'), $new_status_id);
return true;
}
return false;
Вызывается вот так:[[!msPayConfirmSberbank? &payment_id=`4` &status_id=`1` &new_status_id=`7`]]
Всё работает, но очень долго. Уходит на это около 60 секунд, что совсем не норма. Дело не в сервере. Комментарии: 4
При смене статуса отправляются письма покупателю и админу. Скорее всего 59 секунд уходит именно на это.
А как можно убедиться в том, что дело именно в отправке сообщений? Если что, отправка идет через smtp сервер.
Может, убрать отправку оповещений для этого статуса в настройках miniShop2?
Да, дело в отправке сообщений. Будем решать этот вопрос. Вопрос исчерпан. Спасибо, Василий!
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.