3

是否有可能获取最后一个订单 ID 到订单成功页面。?我只想获取最后一个订单ID,所以我可以设置一个指向我的模板文件的链接,success.tpl该链接将转到最后一个订单信息页面。我尝试过一些来自controller/checkout/success.php

$this->load->model('checkout/order');
$order_last_id = $this->db->getLastId();
$this->data['order_info'] = $this->url->link('account/order/info', 'order_id=' . $order_last_id,  'SSL');

但是,运气不好,我得到了带有0订单 ID的网址

index.php?route=account/order/info&order_id=0

任何人都可以帮我获得最后一个订单ID。?

谢谢...

4

3 回答 3

10

打开/catalog/controller/checkout/success.php并在此代码之前

$this->cart->clear();

$this->data['order_id'] = $this->session->data['order_id'];

然后在您的模板中使用 if 来测试是否$order_id不为空

<?php if(!empty($order_id)): ?>
... CODE HERE using $order ID ...
<?php endif; ?>
于 2013-07-04T14:07:27.190 回答
2

只要您没有编辑核心文件...

在 /catalog/controller/checkout/success.php 的第 5 行之前添加:

$this->data['order_id'] = $this->session->data['order_id'];

您遇到的问题是您假设用户已登录,而不是访客用户,要解决此问题,请通过将其添加到您的 success.tpl 来检查用户是否为登录用户

<p><?php echo "Your order ID is "; ?>
<?php if($logged) { ?>
<a href="index.php?route=account/order/info&order_id=<?php echo $order_id; ?>">
<?php } ?>
<?php echo $order_id; ?>
<?php if($logged) { ?>
</a>
<?php } ?>
</p>

这样,如果他们登录,就会创建一个链接。如果没有,它只显示没有链接的 ID 号。

于 2013-07-04T14:35:19.460 回答
0

我得到 opencart-2.0.3.1 的 orderID 如下

  /*after this this line: $this->model_account_activity->addActivity('order_guest', $activity_data);} */
    $orderID = $this->session->data['order_id'];
于 2015-06-30T16:50:41.963 回答