下订单后立即检索产品列表

问题描述

我想从钩子内的订单中获取产品列表 actionObjectOrderAddAfter 但是函数 $order->getProducts() 返回一个空数组。从不同的钩子(例如 hookAdminorder调用相同的函数工作正常。我错过了什么? 谢谢

public function hookActionObjectOrderAddAfter($params)
{
    $order_id = $params['object']->id;
    $order = new Order((int) $order_id);
    $products = $order->getProducts()
    
    /*
    ...
    */
}

解决方法

好的,我想通了。在这个钩子中,您需要从购物车中获取产品 - 而不是订单本身。

public function hookActionObjectOrderAddAfter($params)
{
$order_id = $params['object']->id;
$order = new Order((int) $order_id);
$cart = new Cart((int) $order->id_cart);
$products = $cart->getProducts()

/*
...
*/
}