我设置了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;
}
?>
是否有任何优雅的方法来过滤掉不需要的订单状态(例如“已取消”或“待处理”),以便用户仅看到某些订单状态,例如已确认的订单,已退款和已完成的订单?
非常感谢您!
答案 0 :(得分:1)
您可以通过$ 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;
}
}
?>
如果需要过滤其他任何状态,则可以通过VirtueMart菜单->配置->订单状态找到相应的短代码,例如P和X。