前端的 Virtuemart 订单列表。过滤掉已取消和挂起的订单
Virtuemart orders list in frontend. Filtering out cancelled and pending orders
我设置了 Virtuemart 安装 (V.3.4.2)。
默认情况下,Virtuemart 会列出用户在注册用户的用户帐户中下的所有订单。这是在 com_virtuemart/views/orders/list.php
中呈现的
抱歉,Virtuemart 在此列表中还列出了状态为 "pending" 和 "cancelled" 的订单。
<?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;
}
?>
有没有什么优雅的方法可以过滤掉 "cancelled or pending" 等不需要的订单状态,以便用户只看到某些订单状态,例如已确认订单、已退款和已完成订单?
非常感谢您!
您可以通过 $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 安装 (V.3.4.2)。 默认情况下,Virtuemart 会列出用户在注册用户的用户帐户中下的所有订单。这是在 com_virtuemart/views/orders/list.php
中呈现的抱歉,Virtuemart 在此列表中还列出了状态为 "pending" 和 "cancelled" 的订单。
<?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;
}
?>
有没有什么优雅的方法可以过滤掉 "cancelled or pending" 等不需要的订单状态,以便用户只看到某些订单状态,例如已确认订单、已退款和已完成订单?
非常感谢您!
您可以通过 $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等短码。