从 Prestashop 中的购物车 ID 访问订单对象

问题描述 投票:0回答:3

我正在将购物车 ID 发布到我的模块方法。由此我显然可以使用该 id 创建 Cart 对象。但是我如何访问与 Cart 对象对应的 Order 对象呢?

我试过类似的东西;

$cart = new Cart($_POST['id']);

var_dump($this->context->order);

还尝试对订单执行某种 where() 查询(其中 id_cart 等于我的 Cart 对象中的 id);

$order = new Order('id_cart', $cart->id);

这可能真的很明显,但我只是不太了解 Prestashop。

我尝试这样做的原因是,如果付款超时,我会更改订单的状态。

php prestashop prestashop-1.6
3个回答
4
投票

我赢了;

$order = Order::getOrderByCartId((int)($cart->id));

1
投票

试试

$order = Order::getByCartId($cart->id)

0
投票

我正在传递

$cart->id
以在我的模块中运行,然后我将它传递给 .tpl,在那里我可以访问它。

但是在控制器的功能中我无法获得订单对象

任一:

$order = Order::getByCartId($cart->id)

$order = Order::getOrderByCartId((int)($cart->id));

没有结果。 我有

public function displayMyHooKName($params) {
   
   $id_cart = $params['id_cart'];
/* $id_cart has value of cart id - I have checked */


}

我试过:

 $cart = new Cart($params['id_cart']);

$order = Order::getOrderByCartId((int)($cart->id));
/*or*/
$order = Order::getByCartId($cart->id);


那么如何访问

php$order
知道
$cart->id


$order = Order::getOrderByCartId((int)($cart->id));

回馈

#order_id

所以我做了:


 $cart = new Cart($params['id_cart']);
 $orderID = Order::getOrderByCartId((int)($cart->id));
 $order = new Order($orderID);

 $products = $order->getProducts();

和我的

$products 

是空的


已解决

好的,我知道了。上面的代码是 100% 正确的,它可以正常工作。

我很聪明地尝试从订单对象获取数据——在下订单之前:)在 order-address.tpl 上调用我的钩子。

所以产品数据在

$cart->getProducts();

不过也许我的案子会对某人有所帮助。

@Mike Nguyen 帖子应该被标记为答案,Mike 说得有道理。

© www.soinside.com 2019 - 2024. All rights reserved.