my.orders.html — вывести фото товара + имя товара сделать ссылкой на товар (мои заказы)

6

Добрый день в файле my.orders.html (мои заказы) не могу сделать вывод изображения товара. И не получается сделать наименование товара ссылкой на карточку товара. Может кто-то подскажет?

Сейчас кусок кода такой:

{if !empty($o.items)}
{foreach $o.items as $i}

<tr>
<td>
ВЫВЕСТИ ФОТО ТУТ
</td>
<td>
{$i.name|escape} СДЕЛАТЬ ССЫЛКОЙ НА ТОВАР
</td>
</tr>

{/foreach}
{/if}

Заранее благодарен за ответ.

23 комментария

  • +2
    DimonM27 DimonM27 30 ноября 2018 11:53 #

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

    Нужно строку <a target="_blank" href="{$wa->shop->productUrl($product)}">{$item.name}</a>

    Модифицировать <a target="_blank" href="{$wa->shop->productUrl($product)}reviews/#">Оставить отзыв</a>

    все работает проверял в шаблоне default

  • +1
    sergfes sergfes 17 августа 2016 15:56 #

    Ничего не получается. Все перепробовал. Походу без написания плагина мой вопрос не решить.

    Как перевести тему в «Отчет об ошибке»?

    • +1
      Михаил Ушенин Михаил Ушенин Webasyst 17 августа 2016 16:49 #

      В чём состоит ошибка?

      • +1
        sergfes sergfes 17 августа 2016 17:31 #

        Извините. В раздел "Идея". Тупанул.

      • +1
        sergfes sergfes 19 августа 2016 10:47 #

        На ваш вопрос я ответил. Вы можете ответить на мой?

        • +2
          Петр Петр 26 августа 2016 11:18 #

          {$product = $wa->shop->product($i.product_id)}
          <a href="{$wa->shop->productUrl($product)}">{$i.name|escape}</a>

          вот так сделать ссылку

          позже сделаю вывод картинки

        • +2
          Петр Петр 26 августа 2016 11:28 #

          вот так картинку

          {$wa->shop->productImgHtml($product, '96x96', ['default' => "`$wa_theme_url`img/dummy48.png"])}

          • +1
            sergfes sergfes 26 августа 2016 14:49 #

            СПАСИБО! Изображения выводит, но со странным сдвигом.

            1 заказ в списке (последний заказ, одна позиция в заказе): изображение дефолт, хотя есть картинка.

            2 заказ (одна позиция в заказе): изображение из 1-го заказа.

            3 заказ (одна позиция в заказе): изображение из 2-го заказа.

            ...

            И так до конца - смещение на одну позицию. Вне зависимости от количества товара в заказе.

            P.S.: Ссылки в наименованиях выводит правильно. Кеш сбросил.

            • +2
              Петр Петр 26 августа 2016 15:26 #

              у меня правильное отображение

              возможно у вас неправильное расположение блоков

              надо смотреть на месте так не скажу почему

              • +1
                sergfes sergfes 26 августа 2016 15:28 #

                В понедельник на свежую голову покопаюсь. Может что и выйдет, я отпишусь. Спасибо еще раз.

              • +1
                sergfes sergfes 29 августа 2016 12:30 #

                Не смог найти ошибку. Может поможете? Код my.orders.html:

                <table>
                <thead>
                <tr>
                    <th>Дата</th>
                    <th>№ заказа</th>
                    <th>Сумма заказа</th>
                    <th>Тип доставки</th>
                    <th>Оплата</th>
                    <th>Подробнее</th>
                </tr>
                </thead>
                
                {foreach $orders as $o}
                <tr id="order-{$o.id}">
                        <td>
                            {$o.create_datetime|wa_date}
                        </td>	
                        <td>
                            {$o.id_str}
                        </td>
                        <td>
                            {wa_currency_html($o.total, $o.currency)}
                        </td>
                        <td>
                            {if $o.shipping_name}
                                {$o.shipping_name|escape}
                            {else}
                                Быстрый заказ
                            {/if}
                        </td>
                        <td>
                            {if $o.payment_name}
                                {$o.payment_name|escape}
                            {else}
                               Быстрый заказ
                            {/if}
                        </td>
                
                	<td style="text-align:center!important; width:120px;">
                	    -
                        </td>
                </tr>
                
                <tr>
                <td>
                <table>
                <tr>
                <td>Фото</td>
                <td colspan="3">Наименование</td>
                <td>Цена</td>
                <td>Итого</td>
                </tr>
                
                {*wa_dumpc($o.items)*}
                
                {if !empty($o.items)}
                {foreach $o.items as $i}
                	<tr>
                	<td>
                	{$wa->shop->productImgHtml($product, '48x48', ['default' => "`$wa_theme_url`img/dummy48.png"])}
                	</td>
                			
                	<td colspan="3">
                	{$product = $wa->shop->product($i.product_id)}<a target="_blank" href="{$wa->shop->productUrl($product)}">{$i.name|escape}</a>
                	</td>
                		
                	<td>
                	{wa_currency_html($i.price, $o.currency)} x {$i.quantity}
                	</td>
                		
                	<td>
                	{wa_currency($i.price * $i.quantity, $order.currency)} грн.
                	</td>
                	</tr>
                	{/foreach}
                	{/if}
                	<tr>
                	<td colspan="6">
                	Итого {wa_currency_html($o.total, $o.currency)}
                	</td>
                	</tr>
                </table>
                </td>
                </tr>
                {foreachelse}
                	<tr class="no-border">
                        <td>[`You have no order history yet.`]</td>
                  	</tr>
                {/foreach}
                </table>
                
                {$wa->globals('isMyAccount', true)}
                
                <!-- plugin hook: 'frontend_my_orders' -->
                {* @event frontend_my_orders.%plugin_id% *}
                {foreach $frontend_my_orders as $_}{$_}{/foreach}
                • +2
                  Петр Петр 29 августа 2016 12:59 #

                  вы забыли добавить {$product = $wa->shop->product($i.product_id)} и у вас в одной строке в таблице, другая таблица а в ней не правильное объединение ячеек вот так попробуйте

                  <table>
                  <thead>
                  <tr>
                      <th>Дата</th>
                      <th>№ заказа</th>
                      <th>Сумма заказа</th>
                      <th>Тип доставки</th>
                      <th>Оплата</th>
                      <th>Подробнее</th>
                  </tr>
                  </thead>
                  
                  {foreach $orders as $o}
                  <tr id="order-{$o.id}">
                          <td>
                              {$o.create_datetime|wa_date}
                          </td>   
                          <td>
                              {$o.id_str}
                          </td>
                          <td>
                              {wa_currency_html($o.total, $o.currency)}
                          </td>
                          <td>
                              {if $o.shipping_name}
                                  {$o.shipping_name|escape}
                              {else}
                                  Быстрый заказ
                              {/if}
                          </td>
                          <td>
                              {if $o.payment_name}
                                  {$o.payment_name|escape}
                              {else}
                                 Быстрый заказ
                              {/if}
                          </td>
                  
                          <td style="text-align:center!important; width:120px;">
                              -
                          </td>
                  </tr>
                  
                  <tr>
                  <td colspan="6">
                  <table style="width: 100%;">
                  <tr>
                  <td>Фото</td>
                  <td>Наименование</td>
                  <td>Цена</td>
                  <td>Итого</td>
                  </tr>
                  
                  {*wa_dumpc($o.items)*}
                  
                  {if !empty($o.items)}
                  {foreach $o.items as $i}
                  {$product = $wa->shop->product($i.product_id)}
                          <tr>
                          <td>
                          {$wa->shop->productImgHtml($product, '48x48', ['default' => "`$wa_theme_url`img/dummy48.png"])}
                          </td>
                                          
                          <td>
                          {$product = $wa->shop->product($i.product_id)}<a target="_blank" href="{$wa->shop->productUrl($product)}">{$i.name|escape}</a>
                          </td>
                                  
                          <td>
                          {wa_currency_html($i.price, $o.currency)} x {$i.quantity}
                          </td>
                                  
                          <td>
                          {wa_currency($i.price * $i.quantity, $order.currency)} грн.
                          </td>
                          </tr>
                          {/foreach}
                          {/if}
                          <tr>
                          <td colspan="4">
                          Итого {wa_currency_html($o.total, $o.currency)}
                          </td>
                          </tr>
                  </table>
                  </td>
                  </tr>
                  {foreachelse}
                          <tr class="no-border">
                          <td>[`You have no order history yet.`]</td>
                          </tr>
                  {/foreach}
                  </table>
                  
                  {$wa->globals('isMyAccount', true)}
                  
                  <!-- plugin hook: 'frontend_my_orders' -->
                  {* @event frontend_my_orders.%plugin_id% *}
                  {foreach $frontend_my_orders as $_}{$_}{/foreach}
                • +1
                  sergfes sergfes 29 августа 2016 13:53 #

                  {$product = $wa->shop->product($i.product_id)}

                  Вставил эту строку - все стало отлично показывать. Петр, нипишите мне на скайп пожалуйста, melagrocom_s. Хочу сказать спасибо.

                • +1
                  Канди Канди 27 сентября 2016 13:21 #

                  А можно ли сделать такой же вывод (название - это ссылка и рядом картинка) внутри самого заказа? файл my.order.html

                  • +2
                    Петр Петр 27 сентября 2016 13:37 #

                    думаю можно надо покопаться позже скину код

                  • +1
                    sergfes sergfes 27 сентября 2016 13:35 #

                    Я не подскажу. Попробуйте, если не получиться напишите. Может кто-то из знающих поможет.

                  • +1
                    Канди Канди 28 сентября 2016 13:23 #

                    Поковыряла my.order.html пытаясь на основе вышеизложенных правок сделать вывод изображения или ссылки - не выходит. Там совсем иначе все, чем в файле my.orders.html

                    • +5
                      Петр Петр 28 сентября 2016 17:13 #

                      все очень просто найдите в этом файле {foreach $order.items as $item}

                      добавьте после {$product = $wa->shop->product($item.product_id)}

                      потом найдите вывод названия {$item.name}

                      замените на <a target="_blank" href="{$wa->shop->productUrl($product)}">{$item.name}</a>

                      и добавить картинку можно так:

                      {$wa->shop->productImgHtml($product, '48x48', ['default' => "`$wa_theme_url`img/dummy48.png"])}

                      все работает проверял в шаблоне default

                      • +1
                        Den Den 1 ноября 2017 23:35 #

                        Петр спасибо большое за решение, мне тоже пригодилось!

                      • +1
                        Канди Канди 3 октября 2016 12:55 #

                        Петр , проверила - все работает. Супер! Спасибо огромное!

                      • +1
                        Evgeny Fed Evgeny Fed 4 декабря 2019 14:07 #

                        Благодарю, ссылка и картинка на товар работает. Все легко получилось! Единственное, добавил отступ 10px и не совсем понял красоты и удобства ссылки с отзывом. 

                        Полный код получился таким:

                        {foreach $order.items as $item}
                        {$product = $wa->shop->product($item.product_id)}
                        <tr{if $item.type == 'service'} class="service"{/if}>
                        <td>
                        
                        {$wa->shop->productImgHtml($product, '48x48', ['default' => "`$wa_theme_url`img/dummy48.png"])}
                        
                        {if $item.type == 'service'}+ {/if}
                        
                        <a style="padding-left: 10px;"target="_blank" href="{$wa->shop->productUrl($product)}">{$item.name}</a>
                        
                        {if $item.type == 'product' && !empty($item.download_link)}<a href="{$item.download_link}"><strong>[`Download`]</strong></a>{/if}</td>
                        <td class="align-right"><span class="gray">{wa_currency_html($item.price, $order.currency)} x</span> {$item.quantity}</td>
                        <td class="align-right">{wa_currency_html($item.price * $item.quantity, $order.currency)}</td>
                        </tr>
                        {/foreach}

                        Добавить комментарий

                        Чтобы добавить комментарий, зарегистрируйтесь или войдите