Почему долгий запрос к action.php?

Установлен minishop2. На сайте имеется страница с корзиной, но при оформлении заказа на этой странице modx совершает долгий запрос к action.php(pending...). С чем это может быть связано? Причем это совершается как для онлайн-оплаты долго, так и для оплаты при получении( то есть для страницы об успешной оплате). Есть вариант, конечно, предупреждать пользователя, что идет загрузка, но это неудобно. Сайт — marmeladich.ru/cart/

upd: Немного покопался в файлах минишопа. Вот эта функция тормозит оформление заказа:
$response = $this->ms2->changeOrderStatus($order->get('id'), 1);
Что с ней не так?
Даниил
26 декабря 2018, 13:54
modx.pro
744
0

Комментарии: 7

Илья Уткин
27 декабря 2018, 08:38
0
Пользователю отправляется письмо о том, что его заказ создан. Часто эта операция занимает много времени.
    Даниил
    27 декабря 2018, 16:29
    0
    Решил проверить функцию changeOrderStatus. И вправду из-за отправки письма пользователю запрос тормозится, но что делать если чанки для tpl.msEmail.new.user и tpl.msGetOrder такие же как на minishop2.com?
      Даниил
      27 декабря 2018, 16:34
      0
      if ($status->get('email_user')) {
                      if ($profile = $this->modx->getObject('modUserProfile', array('internalKey' => $pls['user_id']))) {
                          $subject = $this->pdoTools->getChunk('@INLINE ' . $status->get('subject_user'), $pls);
                          $tpl = '';
                          if ($chunk = $this->modx->getObject('modChunk', array('id' => $status->get('body_user')))) {
                              $tpl = $chunk->get('name');
                          }
                          $body = $this->modx->runSnippet('msGetOrder', array_merge($pls, array('tpl' => $tpl)));
                          $email = $profile->get('email');
                          if (!empty($subject) && preg_match('#.*?@.*#', $email)) {
                              $this->sendEmail($email, $subject, $body);
                          }
                      }
                  }
        Даниил
        27 декабря 2018, 17:01
        0
        upd: Оказывается даже на отправку письма менеджеру запрос тормозится
        if ($status->get('email_manager')) {
                        $subject = $this->pdoTools->getChunk('@INLINE ' . $status->get('subject_manager'), $pls);
                        $tpl = '';
                        if ($chunk = $this->modx->getObject('modChunk', array('id' => $status->get('body_manager')))) {
                            $tpl = $chunk->get('name');
                        }
                        $body = $this->modx->runSnippet('msGetOrder', array_merge($pls, array('tpl' => $tpl)));
                        $emails = array_map('trim', explode(',',
                                $this->modx->getOption('ms2_email_manager', null, $this->modx->getOption('emailsender')))
                        );
                        if (!empty($subject)) {
                            foreach ($emails as $email) {
                                if (preg_match('#.*?@.*#', $email)) {
                                    $this->sendEmail($email, $subject, $body);
                                }
                            }
                        }
                    }
        
                    if ($status->get('email_user')) {
                        if ($profile = $this->modx->getObject('modUserProfile', array('internalKey' => $pls['user_id']))) {
                            $subject = $this->pdoTools->getChunk('@INLINE ' . $status->get('subject_user'), $pls);
                            $tpl = '';
                            if ($chunk = $this->modx->getObject('modChunk', array('id' => $status->get('body_user')))) {
                                $tpl = $chunk->get('name');
                            }
                            $body = $this->modx->runSnippet('msGetOrder', array_merge($pls, array('tpl' => $tpl)));
                            $email = $profile->get('email');
                            if (!empty($subject) && preg_match('#.*?@.*#', $email)) {
                                $this->sendEmail($email, $subject, $body);
                            }
                        }
                    }
          Илья Уткин
          27 декабря 2018, 17:04
          1
          0
          Попробуйте настроить на сайте SMTP — возможно, тормозит почтовый сервер.
            Даниил
            27 декабря 2018, 17:17
            0
            Так и оказалось) Отключил smtp, все стало в норме
        Даниил
        27 декабря 2018, 17:17
        0
        Решил данную проблему! Дело было в SMTP. По какой-то причине, при использовании smtp запрос на отправку письма долго обрабатывался. Поэтому я отключил SMTP. Теперь все ОК.
          Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
          7