Как сложить цены на странице заказа в магазине - PullRequest
0 голосов
/ 26 августа 2018

Я перезаписал страницу заказа в магазине и хочу создать все заказы, которые еще не были обработаны.Я сделал это, чтобы показать переменные, которые мне нужны.Я хочу сложить все итоги invoice_amount заказов.

{extends file="parent:frontend/account/orders.tpl"}

{block name="frontend_account_orders_welcome"}
    {$smarty.block.parent}
    {debug}
    <ul>
        {foreach $sOpenOrders as $sOpenOrder}
        <li> Order number :{$sOpenOrder['ordernumber']}</li>
        <li> User ID :{$sOpenOrder['userID']}</li>
        <li> Invoice_amount :{$sOpenOrder['invoice_amount']}</li>
        <li> ordertime : {$sOpenOrder['ordertime']}</li>
        <li> paymentID : {$sOpenOrder['paymentID']}</li>
        <hr>
        {/foreach}
    </ul> 
{*show here the total of the prices for the the products above something like $Total=[invoice_amount_1+invoice_amount_2]*}
{/block}

Есть идеи, как это сделать?Я немного новичок в магазине и умный

Ответы [ 3 ]

0 голосов
/ 26 августа 2018

Наконец-то получил то, что хотел.

{extends file="parent:frontend/account/orders.tpl"}

{block name="frontend_account_orders_welcome"}
    {$smarty.block.parent}
    {$sOrderTotal = 0}
    <ul>
        {foreach $sOpenOrders as $sOpenOrder}
        <li> Order number :{$sOpenOrder['ordernumber']}</li>
        <li> User ID :{$sOpenOrder['userID']}</li>
        <li> Invoice_amount :{$sOpenOrder['invoice_amount']}</li>
        {assign var="sum_cost" value=$sum_cost+$sOpenOrder.invoice_amount}{*this is besically just declaring a variable and then adding up all the values through the loop*}
        <li> ordertime : {$sOpenOrder['ordertime']}</li>
        <li> paymentID : {$sOpenOrder['paymentID']}</li>
        <hr>
        {/foreach}
    </ul> 
<p>Total cost of all orders : {$sum_cost}</p>
{/block}
0 голосов
/ 27 августа 2018

Может быть проще рассчитать общую сумму непосредственно в php и назначить ее представлению.Smarty - это движок шаблонов - даже если он позволяет вам выполнять вычисления и многое другое (небезопасное), вы должны делать это в php.Вместо включения представления счета, это может быть лучший способ написать плагин, который назначает открытые ордера представлению.

0 голосов
/ 26 августа 2018

Я тоже не знаком с этим приложением, но это должно работать:

    {extends file="parent:frontend/account/orders.tpl"}

    {block name="frontend_account_orders_welcome"}
        {$smarty.block.parent}
        {debug}
        {$sOrderTotal = 0}
        <ul>
            {foreach $sOpenOrders as $sOpenOrder}
            <li> Order number :{$sOpenOrder['ordernumber']}</li>
            <li> User ID :{$sOpenOrder['userID']}</li>
            <li> Invoice_amount :{$sOpenOrder['invoice_amount']}</li>
            {$sOrderTotal += $sOpenOrder['invoice_amount']}
            <li> ordertime : {$sOpenOrder['ordertime']}</li>
            <li> paymentID : {$sOpenOrder['paymentID']}</li>
            <hr>
            {/foreach}
        </ul> 
    <p>{$sOrderTotal}</p>
    {/block}

Я добавил три строки.

...