Список заказов Virtuemart во внешнем интерфейсе.Фильтрация отмененных и отложенных ордеров - PullRequest
0 голосов
/ 15 февраля 2019

Я установил установку Virtuemart (V.3.4.2).По умолчанию Virtuemart перечисляет все заказы, сделанные пользователем в учетной записи зарегистрированного пользователя.Это отображается в com_virtuemart / views / orders / list.php

К сожалению, Virtuemart также перечисляет заказы со статусом «отложено» и «отменено» в этом списке.

<?php
    $k = 0;
    foreach ($this->orderlist as $row) {
        $editlink = JRoute::_('index.php?option=com_virtuemart&view=orders&layout=details&order_number=' . $row->order_number, FALSE);
        ?>
        <tr class="<?php echo "row$k"; ?> orderslist">
            <td class="orderslist">
                <a class="spin" href="<?php echo $editlink; ?>" rel="nofollow" <?php echo $ajaxUpdate?> ><?php echo $row->order_number; ?></a>
                <?php echo shopFunctionsF::getInvoiceDownloadButton($row) ?>
            </td>
            <td class="orderslist" style="text-align: center;">
                <?php echo vmJsApi::date($row->created_on,'LC4',true); ?>
            </td>
            <!--td align="left">
                <?php //echo vmJsApi::date($row->modified_on,'LC3',true); ?>
            </td -->
            <td class="orderslist">
                <?php echo shopFunctionsF::getOrderStatusName($row->order_status); ?>
            </td>
            <td class="orderslist" style="text-align: center;">
                <?php echo $this->currency->priceDisplay($row->order_total, $row->currency); ?>
            </td>
        </tr>
<?php
        $k = 1 - $k;
    }
?>

Существует ли какой-либо элегантный способ отфильтровать нежелательные состояния заказа, такие как «отмененный или отложенный», чтобы пользователь мог видеть только определенные состояния заказа, такие как подтвержденные заказы, возвратные и завершенные заказы?

Заранее большое спасибо!

1 Ответ

0 голосов
/ 05 марта 2019

Вы можете отфильтровать свой список путем фильтрации через $ row-> order_status.

Измените:

$editlink = JRoute::_('index.php?option=com_virtuemart&view=orders&layout=details&order_number=' . $row->order_number, FALSE);
?>

на:

$editlink = JRoute::_('index.php?option=com_virtuemart&view=orders&layout=details&order_number=' . $row->order_number, FALSE);
if ($row->order_status == 'P' OR $row->order_status == 'X') {
        // do nothing
    } else { ?>

и:

<?php
        $k = 1 - $k;
    }
?>

до:

<?php
        $k = 1 - $k;
        }
    }
?>

Если вам нужно отфильтровать любые другие статусы, вы можете найти соответствующие короткие коды, такие как P и X, через Меню VirtueMart -> Конфигурация -> Статусы заказа.

...