Отправить на нужную станицу после оформления заказ

Сделал на сайте в категории модальное окно с корзиной. Корзина подгружется со станицы с корзиной. Так вот, когда посетитель ввел телефон и прочее, он должен попадать на станицу на страницу «site.ru/cart.html&msorder=1», но т.к. он находится в категории, то он попадает на страницу «site.ru/category/&msorder=1» на которой непонятно, что заказ оформлен.
Вопрос: как его перенаправить на нужную страницу?
Evgeny Epifanov
19 сентября 2014, 17:43
modx.pro
1
1 647
0

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

Василий Наумкин
19 сентября 2014, 21:50
1
0
Забацай плагин, который будет редиректить с любой страницы сайта на корзину:
if (!empty($_GET['msorder'])) {
	// ...
}
    Evgeny Epifanov
    19 сентября 2014, 23:56
    0
    Спасибо.
    А событие должно быть msOnCreateOrder?
      Василий Наумкин
      20 сентября 2014, 10:20
      0
      Нет, OnLoadWebPage.

      Если ты попадаешь на любую другую страницу с параметром msorder, кроме корзины, должно перенаправлять в корзину — такая идея.

      Конечно, нужно проверять, что сейчас за страница и не является ли корзиной она.
        Evgeny Epifanov
        20 сентября 2014, 15:54
        0
        Василий, спасибо большое за помощь.
        Прошу проверить:
        if (!empty($_GET['msorder']) && $_SERVER['REQUEST_URI']!= "/cart.html&msorder=".$_GET['msorder']) {
            header('Location:http://'.$_SERVER['SERVER_NAME']."/cart.html&msorder=".$_GET['msorder']);
            exit;
        }
        Повесил на событие OnLoadWebDocument. OnLoadWebPage — не нашел (MODx 2.3.1)
        Вроде работает как надо.
          Василий Наумкин
          20 сентября 2014, 17:11
          0
          В целом, всё верно, но лучше так:
          $cart_id = 58;
          if (!empty($_GET['msorder']) && $modx->resource->id != $cart_id) {
          	$url = $modx->makeUrl($cart_id, '', $_GET);
          	$modx->sendRedirect($url);
          }
          Просто укажи свой id своей страницы с корзиной.
            Evgeny Epifanov
            20 сентября 2014, 18:11
            0
            Циклическая переадресация.
            Может как-то так?
            $cart_id = 10;
            if (!empty($_GET['msorder']) && $modx->resource->id != $cart_id) {
            	$url = $modx->makeUrl($cart_id, '', "msorder=".$_GET['msorder']);
            	$modx->sendRedirect($url);
            }
              Василий Наумкин
              20 сентября 2014, 19:04
              0
              Это у тебя, видимо, friendly_urls не включены, поэтому id страницы попадает в $_GET.
                Evgeny Epifanov
                20 сентября 2014, 19:18
                0
                Включены. Но почему-то переход осуществляется на
                http://site.ru/cart.html?q=category%2F&msorder=30
              Evgeny Epifanov
              20 сентября 2014, 18:18
              0
              И еще вопрос. Не по теме.
              Как в php сделать первую букву в нижнем регистре. lcfirst не работает с utf-8. Другие решения (с mb_strtolower) меняют кодировку этого символа.
              Может ты знаешь какое решение?
                Василий Наумкин
                20 сентября 2014, 19:05
                0
                У mb_strtolower нужно указывать кодировку вторым параметром.
                $string = mb_strtolower($string, 'UTF-8');
                  Evgeny Epifanov
                  20 сентября 2014, 19:33
                  0
                  Спасибо, действительно работает.
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      11