Opencart订单列表状态

时间:2014-03-10 13:48:25

标签: php loops if-statement foreach opencart

我目前正在使用opencart,在管理面板中有一个订单部分。

在代码中有一个显示每个订单的循环。 这是循环

<?php foreach ($orders as $order) { ?>
            <tr>
              <td style="text-align: center;"><?php if ($order['selected']) { ?>
                <input type="checkbox" name="selected[]" value="<?php echo $order['order_id']; ?>" checked="checked" />
                <?php } else { ?>
                <input type="checkbox" name="selected[]" value="<?php echo $order['order_id']; ?>" />
                <?php } ?></td>
              <td class="right"><?php echo $order['order_id']; ?></td>
              <td class="left"><?php echo $order['customer']; ?></td>
              <td class="left"><?php echo $order['status']; ?></td>
              <td class="right"><?php echo $order['total']; ?></td>
              <td class="left"><?php echo $order['date_added']; ?></td>
              <td class="left"><?php echo $order['date_modified']; ?></td>
              <td class="right"><?php foreach ($order['action'] as $action) { ?>
                [ <a href="<?php echo $action['href']; ?>"><?php echo $action['text']; ?></a> ]
                <?php } ?></td>
            </tr>
<?php } ?>

此处还有一个过滤器可以对订单进行排序。

<tr class="filter">
              <td></td>
              <td align="right"><input type="text" name="filter_order_id" value="<?php echo $filter_order_id; ?>" size="4" style="text-align: right;" /></td>
              <td><input type="text" name="filter_customer" value="<?php echo $filter_customer; ?>" /></td>
              <td><select name="filter_order_status_id">
                  <option value="*"></option>
                  <?php if ($filter_order_status_id == '0') { ?>
                  <option value="0" selected="selected"><?php echo $text_missing; ?></option>
                  <?php } else { ?>
                  <option value="0"><?php echo $text_missing; ?></option>
                  <?php } ?>
                  <?php foreach ($order_statuses as $order_status) { ?>
                  <?php if ($order_status['order_status_id'] == $filter_order_status_id) { ?>
                  <option value="<?php echo $order_status['order_status_id']; ?>" selected="selected"><?php echo $order_status['name']; ?></option>
                  <?php } else { ?>
                  <option value="<?php echo $order_status['order_status_id']; ?>"><?php echo $order_status['name']; ?></option>
                  <?php } ?>
                  <?php } ?>
                </select></td>
              <td align="right"><input type="text" name="filter_total" value="<?php echo $filter_total; ?>" size="4" style="text-align: right;" /></td>
              <td><input type="text" name="filter_date_added" value="<?php echo $filter_date_added; ?>" size="12" class="date" /></td>
              <td><input type="text" name="filter_date_modified" value="<?php echo $filter_date_modified; ?>" size="12" class="date" /></td>
              <td align="right"><a onclick="filter();" class="button"><?php echo $button_filter; ?></a></td>
            </tr>

我正在尝试做的是在订单下面,在另一个表中显示具有设置状态的所有订单。

例如,当订单完成(状态ID = 5)时,我希望它从一个表移动到另一个表

enter image description here

你可以看到status_id为“5”的“完整订单”和order_status为“1”的挂单。

我不担心表格看起来如何,我可以在循环中做到这一点,但我不知道如何将信息放入循环中以显示具有设置状态的订单,我已经尝试过< / p>

<?php foreach ($orders as $order) { ?>
  <?php if ($order_status['order_status_id'] = 5 ?>
    some data here
  <?php ?>
<?php ?>

<?php foreach ($orders as $order) { ?>
  <?php if ($order['status'] = 5 ?>
    some data here
  <?php ?>
<?php ?>

我是否以错误的方式解决问题?

循环不起作用,我也尝试将if语句放在foreach之前,但是它没有用。

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

应该是

if( $order['status'] == 'Complete' ) { //code }

== is comparison operator where as = is an assignment operator

此代码应位于<?php foreach ($orders as $order) { ?>

另请注意,$order['status']会提供订单状态文字而非整数,因此请相应地制定条件。有关所有订单状态,请参阅order_status db表

您的括号也不匹配