Перейти к содержанию
kate1987

[Решено] отобразить инфо о товаре в order_list.tpl

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

Здравствуйте

Хочу отобразить данные о товаре сразу в списке заказов на странице истории заказов покупателя

для этого в котроллере указываю

 

в блоке

foreach ($results as $result) {
	$this->data['products'] = array();

            
            $products = $this->model_account_order->getOrderProducts($result['order_id']);

              foreach ($products as $product) {
                                
                
                $this->data['products'][] = array(

                
                      'name'     => $product['name'],
                      
                );
              }

и в файле вывода

  
 <div class="products"> 
  <?php foreach ($products as $product) { ?>
   <?php echo $product['name']; ?>
      
    
      <?php } ?>  </div>

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

 

print_r выводит такой массив

 

Array ( [0] => Array ( [order_product_id] => 26 [order_id] => 19 [product_id] => 68 [name] => Скидка 68% на катание на лошади для одного человека (1 час) (384 руб. вместо 1200 руб.) [model] => катание на лошади для одного человека (1 час) [quantity] => 1 [price] => 384.0000 [total] => 384.0000 [tax] => 0.0000 [reward] => 0 [description] => ) )

 

Помогите пожалуйста решить проблему

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


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

Никто не знает?

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


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

...

$this->data['orders'][] = array(

'order_id' => $result['order_id'],

'products' => $this->model_account_order->getOrderProducts($result['order_id']),

...

...

<td class="left"><?php echo $order['date_modified']; ?></td>

<td class="left"><?php foreach ($order['products'] as $product) { ?>...</td>

...

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


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

Добавила, получила ошибку

Warning: Invalid argument supplied for foreach() in /home/......./vq2-catalog_view_theme_default_template_account_order_list.tpl on line 28

 

Может быть данное решение не к тому order_list.tpl ?

 

код catalog_view_theme_default_template_account_order_list.tpl

<?php echo $header; ?><?php echo $column_left; ?><?php echo $column_right; ?>
<div id="content"><?php echo $content_top; ?>
  <div class="breadcrumb">
    <?php foreach ($breadcrumbs as $breadcrumb) { ?>
    <?php echo $breadcrumb['separator']; ?><a href="<?php echo $breadcrumb['href']; ?>"><?php echo $breadcrumb['text']; ?></a>
    <?php } ?>
  </div>
  <h1>Мои купоны</h1>
  <?php if ($orders) { ?>
  <?php foreach ($orders as $order) { ?>
  

  
  
  <div class="order-list">
  
  <div class="title">
  <div class="date">Дата покупки<br>
<span><?php echo $order['date_added']; ?></span></div>
<div class="date">Действует c<br>
<span>17.01.2015</span></div>
<div class="date">Действует до<br>
										<span>  18.07.2015</span></div>
  </div>
     <div class="products"> 
     
     
     <?php foreach ($order['products'] as $product) { ?>  
     <div class="name">  <a href="<?php echo $product['href']; ?>">  <?php echo $product['name']; ?></a></div>
     
      <?php } ?>
     
<!--  <?php foreach ($products as $product) { ?>

 <div class="img">	<img src="<?php echo $product['image'];?>" /></div>
<div class="name">  <a href="<?php echo $product['href']; ?>">  <?php echo $product['name']; ?></a></div>
<div style="clear: both"></div>
       
      <?php } ?>-->
    <div class="order-id">
   <?php 
$chars="1234567890";
$max=10;
$size=StrLen($chars)-1;
$password=null;

    while($max--)
    $password.=$chars[rand(0,$size)];

$order_number= $password.$order['order_id'];
$char="-"; 
$order_number_char=preg_replace('/((?:.|\n){4})(?!$)/i','${1}'.$char,$order_number); 

?>
    
    
    <b><?php echo $text_order_id; ?></b> <?php echo $order_number_char; ?></div>
    <div class="order-status"><b><?php echo $text_status; ?></b> <?php echo $order['status']; ?></div>
    <div class="order-content">

      <div>
        <b>Купонов:</b> <?php echo $order['products']; ?></div>
      <div><b><?php echo $text_customer; ?></b> <?php echo $order['name']; ?><br />
        <b><?php echo $text_total; ?></b> <?php echo $order['total']; ?></div>
      <div class="order-info"><a href="<?php echo $order['href']; ?>"><img src="catalog/view/theme/default/image/info.png" alt="<?php echo $button_view; ?>" title="<?php echo $button_view; ?>" /></a>  <a href="<?php echo $order['reorder']; ?>"><img src="catalog/view/theme/default/image/reorder.png" alt="<?php echo $button_reorder; ?>" title="<?php echo $button_reorder; ?>" /></a></div>
    </div>
 
  </div></div>

  
  <?php } ?>
  <div class="pagination"><?php echo $pagination; ?></div>
  <?php } else { ?>
  <div class="content"><?php echo $text_empty; ?></div>
  <?php } ?>
  <div class="buttons">
    <div class="right"><a href="<?php echo $continue; ?>" class="button"><?php echo $button_continue; ?></a></div>
  </div>
  
  

  
  <?php echo $content_bottom; ?></div>
<?php echo $footer; ?>

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


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

есть такое.

я указал на логическую ошибку в получении/передаче товаров в шаблон.

там в массиве ключ 'products' ниже переопределяется

				'products'   => ($product_total + $voucher_total),
так что надо просто заменить

'products'      => $this->model_account_order->getOrderProducts($result['order_id']),
на, например

'productList'      => $this->model_account_order->getOrderProducts($result['order_id']),

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


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

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

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

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.