[Помогите] Номер заказа на странице sucsess

Тема в разделе "OpenCart", создана пользователем winner7, 24 июл 2013.

  1. winner7

    winner7

    Регистрация:
    6 мар 2013
    Сообщения:
    322
    Симпатии:
    55
    Всем привет! На мой взгляд не очень информативна в опенкарте страница sucsess. Уважаемые гуру! Подскажите, пожалуйста, как сделать вывод номера заказа на саксессе?
     
  2. DionisCR

    DionisCR

    Регистрация:
    17 фев 2013
    Сообщения:
    108
    Симпатии:
    57
    catalog/language/russian/checkout/success.php - здесь текст, поправьте как вам будет удобно. #%s обозначается номер заказа. Текст отдельно для пользователя и для гостя.
     
    winner7 нравится это.
  3. winner7

    winner7

    Регистрация:
    6 мар 2013
    Сообщения:
    322
    Симпатии:
    55
    Где сделать вывод я знаю, но вот как? Не подскажете, как правильно сделать вывод?
     
  4. andelor

    andelor

    Регистрация:
    17 июл 2013
    Сообщения:
    77
    Симпатии:
    32
    исправьте текст информации на то,что вам нужно в этом файле или необходимо что-то иное?
    Пример
     
    sokrat и winner7 нравится это.
  5. winner7

    winner7

    Регистрация:
    6 мар 2013
    Сообщения:
    322
    Симпатии:
    55
    Делаю так, номер заказ не выводится.
    Выводится такой текст:
    Ваш заказ #%s в обработке
     
  6. andelor

    andelor

    Регистрация:
    17 июл 2013
    Сообщения:
    77
    Симпатии:
    32
    То есть номер автоматически не проставляется вместо спец символов? Раньше до изменений какой текст был и проставлялся ли номер?
     
    winner7 нравится это.
  7. winner7

    winner7

    Регистрация:
    6 мар 2013
    Сообщения:
    322
    Симпатии:
    55
    Вместо спец символов не вставляется. Раньше был текст
    <?php
    // Heading
    $_['heading_title'] = 'Ваш заказ сформирован!';

    До изменений № не проставлялся, если б он проставлялся, то не было бы темы )))
    ocStore 1531
     
  8. andelor

    andelor

    Регистрация:
    17 июл 2013
    Сообщения:
    77
    Симпатии:
    32
    В catalog/controller/checkout/succes.php
    найдите и удалите или закомментируйте через // строки

    unset($this->session->data['order_id']);
    $this->document->setTitle($this->language->get('heading_title'));

    и сразу после вставляем свои

    if ($this->session->data['order_id'] <>"") {
    $this->document->setTitle(sprintf($this->language->get('heading_title_customer'), $this->session->data['order_id']));
    } else {
    $this->document->setTitle($this->language->get('heading_title'));
    }

    далее, строку

    $this->data['heading_title'] = $this->language->get('heading_title');

    меняем на

    if ($this->session->data['order_id'] <>"") {
    $this->data['heading_title'] = sprintf($this->language->get('heading_title_customer'), $this->session->data['order_id']);
    } else {
    $this->data['heading_title'] = $this->language->get('heading_title');
    }

    далее, строки

    if ($this->customer->isLogged()) {
    $this->data['text_message'] = sprintf($this->language->get('text_customer'), $this->url->link('account/account', '', 'SSL'), $this->url->link('account/order', '', 'SSL'), $this->url->link('account/download', '', 'SSL'), $this->url->link('information/contact'));
    } else {
    $this->data['text_message'] = sprintf($this->language->get('text_guest'), $this->url->link('information/contact'));
    }

    меняем на

    if ($this->customer->isLogged()) {
    $this->data['text_message'] = sprintf($this->language->get('text_customer'), $this->url->link('account/order/info&order_id=' . $this->session->data['order_id'], '', 'SSL'), $this->session->data['order_id'], $this->url->link('account/account', '', 'SSL'), $this->url->link('account/order', '', 'SSL'), $this->url->link('account/download', '', 'SSL'), $this->url->link('information/contact'));
    } else {
    $this->data['text_message'] = sprintf($this->language->get('text_guest'), $this->session->data['order_id'], $this->url->link('information/contact'));
    }
    --- добавлено: 25 июл 2013 в 11:49 ---
    Чтобы выводилось все, в файле локализации catalog/language/russian/checkout/success.php , используйте функции, как писал в примере в посте 4
     
    sokrat и Baco нравится это.
  9. winner7

    winner7

    Регистрация:
    6 мар 2013
    Сообщения:
    322
    Симпатии:
    55
    Все получилось!
    Только, чтобы у заказа выводилось № а не # надо записывать:

    Код:
    $_['heading_title_customer'] = 'Ваш заказ № %s в обработке';
    --- добавлено: 28 июл 2013 в 03:00 ---
    Вы так хорошо объяснили те моменты, которые даже опытные специалисты считали геморными и не хотели заморачиваться. Сразу видно, что у вас много знаний по опенкарту и большой опыт. Может быть вы случайно знаете, как после оформления заказа редиректить покупателя на страницу с заказом?
     
  10. andelor

    andelor

    Регистрация:
    17 июл 2013
    Сообщения:
    77
    Симпатии:
    32
    Для какой формы заказа именно вам надо, с регистрацией или без при оформлении?
     
    sokrat и winner7 нравится это.
  11. winner7

    winner7

    Регистрация:
    6 мар 2013
    Сообщения:
    322
    Симпатии:
    55
    С регистрацией
     
  12. andelor

    andelor

    Регистрация:
    17 июл 2013
    Сообщения:
    77
    Симпатии:
    32
    откройте catalog/controller/checkout/succes.php
    найдите

    if ($this->customer->isLogged()) {

    и сразу после вставьте
    $this->redirect($this->url->link('account/order/info&order_id=' . $this->session->data['last_order_id'], '', 'SSL'));
     
    wonderer22, gnommong и winner7 нравится это.
  13. sokrat

    sokrat

    Регистрация:
    23 ноя 2013
    Сообщения:
    118
    Симпатии:
    20
    У меня Опенкарт 1.5.5.1 . После внесенных изменений в посте 4 и в посте 8 весь шаблон поехал!!!
    [​IMG]

    Ошибку исправил. Оказывается я забыл закомментировать самую первую строку!
    --- Добавлено, 10 дек 2013 ---
    У меня опенкарт 1.5.5.1 Если вставить редирект в таком виде, тогда выводит ошибку: Undefined index: last_order_id
     
    Последнее редактирование: 10 дек 2013
  14. eeeMan

    eeeMan

    Регистрация:
    18 фев 2014
    Сообщения:
    10
    Симпатии:
    0
    сделал все как по инструкции, не работает, в верху страницы начинают вылезать ошибки, а в тексте вместо номера заказа отображается #%s. Версия 1.5.5.1

    ------ Сегодня, в 07:59 ------

    подскажет кто-нибудь?
     
    Lasted edited by : 24 фев 2014
  15. yurets86

    yurets86

    Регистрация:
    13 апр 2013
    Сообщения:
    394
    Симпатии:
    328
    код полностью рабочий, совет - пересмотри все заново, т.к. допустил где-то ошибку, или еще лучше сделай все заново
     
  16. eeeMan

    eeeMan

    Регистрация:
    18 фев 2014
    Сообщения:
    10
    Симпатии:
    0
    в том и дело, что все делал как описано выше и заново делал, а не работает потому, что выше-описанный метод не для 1.5.5.1

    Notice: Undefined index: order_id in /home/p101182/www/*мой сайт*/catalog/controller/checkout/success.php on line 27Notice: Undefined index: order_id in /home/p101182/www/*мой сайт*/catalog/controller/checkout/success.php on line 61Notice: Undefined index: order_id in /home/p101182/www/*мой сайт*/catalog/controller/checkout/success.php on line 80

    Все сделал чисто как по инструкции!
    в общем не рабочий код.

    сделал подругому все, вроде работает. Вопрос другой появился, как вывести не сумму заказа, а "и того"?
     
    Lasted edited by : 28 фев 2014
  17. Me4Ta

    Me4Ta

    Регистрация:
    9 мар 2014
    Сообщения:
    7
    Симпатии:
    0
    Мне вот интересно, только у меня одаренной ничего не получается или у меня шаблон на столько кривой >_<
    Перепробовала уже кучу методов но результат один и тот же, либо ошибки либо ничего не происходит...

    Мне нужно вывести номер заказа в форму подтверждения и желательно в обе формы заказа от гостя и пользователя

    Данный метод тоже пробовала, результат и ошибки и номера нет... Версия 1.5.6 может дело в ней? Что делать уже не знаю...
     
  18. Baco

    Baco Антихронофаг Команда форума

    Регистрация:
    9 окт 2012
    Сообщения:
    648
    Симпатии:
    327
    Тут просмотреть надо где именно происходит
    Код:
    unset($this->session->data['order_id']);
    так как это ключевая переменная, и если вы проводите все манипуляции после этой строки, тогда гиблое дело, надо ровным счетом всё до этого момента прописывать !!! Или не забывать закомментировать строчку, описанную в мануале
     
  19. Me4Ta

    Me4Ta

    Регистрация:
    9 мар 2014
    Сообщения:
    7
    Симпатии:
    0
    Плюс ко всему при оформлении заказа зарегистрированного пользователя выскакивает ошибка. Warning: sprintf() [function.sprintf]: Too few arguments in catalog/controller/checkout/success.php on line 55
    Исправить которую в принципе не проблема, просто исправив файл перевода.

    Да я уже как только не пробовала, метод который описан тут, далеко не первый и не последний который использовала.


    Причем порадовало высказывание на одном англоязычном форуме

    Может и клево что до этого именно русские докумекали, но блин почему по умолчанию в шаблонах этого нет? Неужели все считают эту часть не важной? Человек должен знать номер своего заказа :furious:
     
  20. Vadiev Dem

    Vadiev Dem

    Регистрация:
    25 апр 2014
    Сообщения:
    56
    Симпатии:
    8
    Убрал ошибку удалив из catalog/language/russian/checkout/success.php символы - "%N"...но...таким образом приходится отказать от отображения №заказа(((