NoobMan

Undefined variable: text_message

Рекомендуемые сообщения

NoobMan    16

Приветствую всех!

 

Подскажите почему переменная не обрабатывается при гостевом заказе?

 

Ошибка такая: PHP Notice:  Undefined variable: text_message in /catalog/view/theme/template/common/success.tpl on line 17

 

17 строка success.tpl <?php echo $text_message; ?>

 

В языковом пакете тексты присутствуют

 

$_['text_guest']    = '<p>Ваш заказ №%s успешно сформирован!</p><p>Пожалуйста, направляйте в <a href="%s">Службу поддержки</a> любые ваши вопросы.</p><p>Зарегистрированным покупателям доступен просмотр состояния заказов и возможность просмотра истории прошлых покупок.</p><p>Спасибо за покупки в нашем интернет-магазине!</p>';

 

Похоже что то в контролере success.php в частности закомментирована 72 строка:

//$data['text_message'] = sprintf($this->language->get('text_guest'), $this->url->link('information/contact'));
 
Но если ее раскомментировать, то появляется ошибка
 
Warning: sprintf() [function.sprintf]: Too few arguments in /catalog/controller/checkout/success.php on line 72
<?php
class ControllerCheckoutSuccess extends Controller {
	public function index() {
		$this->load->language('checkout/success');

		if (isset($this->session->data['order_id'])) {
			$this->cart->clear();

			// Add to activity log
			$this->load->model('account/activity');

			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);
			}

			unset($this->session->data['shipping_method']);
			unset($this->session->data['shipping_methods']);
			unset($this->session->data['payment_method']);
			unset($this->session->data['payment_methods']);
			unset($this->session->data['guest']);
			unset($this->session->data['comment']);
			unset($this->session->data['order_id']);
			unset($this->session->data['coupon']);
			unset($this->session->data['reward']);
			unset($this->session->data['voucher']);
			unset($this->session->data['vouchers']);
			unset($this->session->data['totals']);
		}

		$this->document->setTitle($this->language->get('heading_title'));

		$data['breadcrumbs'] = array();

		$data['breadcrumbs'][] = array(
			'text' => $this->language->get('text_home'),
			'href' => $this->url->link('common/home')
		);

		$data['breadcrumbs'][] = array(
			'text' => $this->language->get('text_basket'),
			'href' => $this->url->link('checkout/cart')
		);

		$data['breadcrumbs'][] = array(
			'text' => $this->language->get('text_checkout'),
			'href' => $this->url->link('checkout/checkout', '', 'SSL')
		);

		$data['breadcrumbs'][] = array(
			'text' => $this->language->get('text_success'),
			'href' => $this->url->link('checkout/success')
		);

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

		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['button_continue'] = $this->language->get('button_continue');

		$data['continue'] = $this->url->link('common/home');

		$data['column_left'] = $this->load->controller('common/column_left');
		$data['column_right'] = $this->load->controller('common/column_right');
		$data['content_top'] = $this->load->controller('common/content_top');
		$data['content_bottom'] = $this->load->controller('common/content_bottom');
		$data['footer'] = $this->load->controller('common/footer');
		$data['header'] = $this->load->controller('common/header');

		if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/common/success.tpl')) {
			$this->response->setOutput($this->load->view($this->config->get('config_template') . '/template/common/success.tpl', $data));
		} else {
			$this->response->setOutput($this->load->view('default/template/common/success.tpl', $data));
		}
	}
}

Помогите починить пожалуйста

Изменено пользователем NoobMan

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
NoobMan    16

Данная сборка подготовлена командой opencart.ru
Версия 2.1.0.1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
NoobMan    16

Спасибо, действительно помогло. Продублирую решение:

Нужно в Нужно открыть файл catalog/controller/checkout/success.php заменить 72 строку на эту (а именно 1. раскоментировать и 2. добавить одинарные ковычки перед $this->url:

$data['text_message'] = sprintf($this->language->get('text_guest'), '', $this->url->link('information/contact')); 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Гость
Эта тема закрыта для публикации ответов.

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу