Помощь Номера заказа при оформлении покупки

Alexeina66

Мой дом здесь!
Регистрация
26 Авг 2013
Сообщения
426
Реакции
445
Добрый день!

Необходимо вывести номер заказа на странице благодарности после оформления. Именно в тексте благодарности, не в заголовке.
Т. е. в $_['text_guest'] и $_['text_customer']
Условие - как для зарегистрированных пользователей, так и для гостей. Не стандартный шаблон.

Благодарю за помощь.
 
Если делать по логике OC, то в языковых файлах надо добавлять еще одну переменную "%s", а в контроллере добавить вычисление этой переменной.
Если сам не разберешься, то кинь сюда твое содержимое языкового файла и опиши куда хочешь вставить номер заказа.
 
Если делать по логике OC, то в языковых файлах надо добавлять еще одну переменную "%s", а в контроллере добавить вычисление этой переменной.
Если сам не разберешься, то кинь сюда твое содержимое языкового файла и опиши куда хочешь вставить номер заказа.

Привет я пробовал модулем, все равно не получилось.
Языковой файл вот. Хочу здесь добавить ваш номер заказа $_['text_customer'].

Код:
<?php
// Heading
$_['heading_title']        = 'Благодарим за покупку в интернет-магазине';

// Text
$_['text_basket']          = 'Корзина';
$_['text_checkout']        = 'Оформить заказ';
$_['text_success']         = '';
$_['text_customer']        = '<p>Ваш заказ принят!</p><p>История заказа находится в <a href="%s">Личном кабинете</a>. Для просмотра истории, перейдите по ссылке <a href="%s">История заказов</a>.</p><p>Если у Вас возникли вопросы, пожалуйста <a href="%s">свяжитесь с нами</a>.</br></p><p>Спасибо за покупку в интернет-магазине!</p>';
$_['text_guest']           = '<p> Ваш заказ поступил в обработку нашим менеджерами.</p> <p>Ожидайте звонка менеджера интернет-магазина для подтверждения заказа.</p><p><b>Пожалуйста, проверьте вашу почту!</b></p> На ваш E-mail, указанный при оформлении покупки, отправлено письмо с детализацией заказа и инструкцией об оплате. </br></br>';
 
В языковый файл добавляем в начало $_['text_customer'] абзац с номером заказа:
Код:
$_['text_customer']        = '<p>Ваш номер заказа: %s</p><p>Ваш заказ принят!</p><p>История заказа находится в <a href="%s">Личном кабинете</a>. Для просмотра истории, перейдите по ссылке <a href="%s">История заказов</a>.</p><p>Если у Вас возникли вопросы, пожалуйста <a href="%s">свяжитесь с нами</a>.</br></p><p>Спасибо за покупку в интернет-магазине!</p>';
С контроллером success.php есть неудобство, вычисление $data['text_message'] идет после очистки данных заказа. Придется добавить переменную.
После строки :
Код:
        $this->load->language('checkout/success');
вставить строку:
Код:
        $order_id_text_message = '';
Найти строку:
Код:
            $this->cart->clear();
и после неё вставить строку:
Код:
            $order_id_text_message = $this->session->data['order_id'];
Далее найти строку:
Код:
            $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'));
и заменить на:
Код:
            $data['text_message'] = sprintf($this->language->get('text_customer'), $order_id_text_message, $this->url->link('account/account', '', 'SSL'), $this->url->link('account/order', '', 'SSL'), $this->url->link('account/download', '', 'SSL'), $this->url->link('information/contact'));
Надеюсь, что понятно написал. Но есть особенность, если повторно перегрузить страницу, то номер заказа пропадет, т.к. заказ уже был очищен.

UPD.
Упс, заметил, что у тебя меньше переменных. Последнюю замену не делай.
Кинь свой фрагмент контроллера, аналогичный этому:
Код:
        if ($this->customer->isLogged()) {
            $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 {
            $data['text_message'] = sprintf($this->language->get('text_guest'), $this->url->link('information/contact'));
        }
 
Последнее редактирование:
У меня вот так.
Код:
if ($this->customer->isLogged()) {
                $activity_data = array(
                    'customer_id' => $this->customer->getId(),
                    'name'        => $this->customer->getFirstName() . ' ' . $this->customer->getLastName(),
                    'order_id'    => $this->session->data['order_id']
                );

                $this->model_account_activity->addActivity('order_account', $activity_data);
            } else {
                $activity_data = array(
                    'name'     => $this->session->data['guest']['firstname'] . ' ' . $this->session->data['guest']['lastname'],
                    'order_id' => $this->session->data['order_id']
                );

                $this->model_account_activity->addActivity('order_guest', $activity_data);
            }
 
Не этот, дальше по тексту, ближе к концу. Легче по поиску через поиск sprintf.
 
Код:
if ($this->customer->isLogged()) {
            $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 {
            $data['text_message'] = sprintf($this->language->get('text_guest'), $this->url->link('information/contact'));
        }
 
Это оно!
Прикольно получается, а у тебя $data['text_message'] не соответствует языковому файлу. Линк "свяжитесь с нами" получился account/download :).
Исправляем с добавочкой номера заказа:
Код:
if ($this->customer->isLogged()) {
            $data['text_message'] = sprintf($this->language->get('text_customer'), $order_id_text_message, $this->url->link('account/account', '', 'SSL'), $this->url->link('account/order', '', 'SSL'), $this->url->link('information/contact'));
        } else {
            $data['text_message'] = sprintf($this->language->get('text_guest'), $this->url->link('information/contact'));
        }
Теперь всё на своих местах.
Здесь последовательно вычисляются все переменные %s для языкового файла.
 
Назад
Сверху