php 从Prestashop中的Cart Id访问Order对象

fnvucqvd  于 2023-04-19  发布在  PHP
关注(0)|答案(3)|浏览(93)

我正在将Cart id POST到我的模块方法中。从那里我显然可以使用该id创建Cart对象。但是我如何访问与该Cart对象相对应的Order对象呢?
我试过类似的方法

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

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

并且还尝试在Order上执行一种where()查询(其中id_cart等于我的Cart对象中的id);

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

这可能是真的很明显,但我只是不知道Prestashop很好。
我尝试这样做的原因是,如果付款超时,我会更改订单的状态。

cetgtptt

cetgtptt1#

我赢了

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

goqiplq22#

试试看

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

uelo1irk3#

我将$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);

那么如何在知道$cart->id的情况下访问php$order呢?
好的

$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有一个观点。

相关问题