在 Magento 2 中获取 checkout_onepage_controller_success_action 的送货地址
Get shipping address on checkout_onepage_controller_success_action in Magento 2
我想获取 checkout_onepage_controller_success_action 活动的所有送货详细信息。
我正在使用以下代码:
$event = $observer->getEvent();
$orderIds = $event->getOrderIds();
$order_id = $orderIds[0];
$shipping = $order_id->getShippingAddress()->getData();
$shippingMethod = $order_id->getShippingMethod();
我收到错误消息:
Error: Call to a member function getShippingAddress() on string.
根据我的说法,在 getShippingAddress() 上传递 $order_id 的方式是错误的。有人可以向我介绍一下吗?我想跨订单 ID 获取完整数据。
您的观察者中的这段代码 class 应该可以工作:
protected $orderFactory;
public function __construct(
\Magento\Sales\Model\OrderFactory $orderFactory
) {
$this->orderFactory = $orderFactory;
}
public function execute(\Magento\Framework\Event\Observer $observer)
{
$orderId = $observer->getEvent()->getOrderIds()[0];
$order = $this->orderFactory->create()->load($orderId);
$shippingInformation = $order->getShippingAddress();
}
我想获取 checkout_onepage_controller_success_action 活动的所有送货详细信息。
我正在使用以下代码:
$event = $observer->getEvent();
$orderIds = $event->getOrderIds();
$order_id = $orderIds[0];
$shipping = $order_id->getShippingAddress()->getData();
$shippingMethod = $order_id->getShippingMethod();
我收到错误消息:
Error: Call to a member function getShippingAddress() on string.
根据我的说法,在 getShippingAddress() 上传递 $order_id 的方式是错误的。有人可以向我介绍一下吗?我想跨订单 ID 获取完整数据。
您的观察者中的这段代码 class 应该可以工作:
protected $orderFactory;
public function __construct(
\Magento\Sales\Model\OrderFactory $orderFactory
) {
$this->orderFactory = $orderFactory;
}
public function execute(\Magento\Framework\Event\Observer $observer)
{
$orderId = $observer->getEvent()->getOrderIds()[0];
$order = $this->orderFactory->create()->load($orderId);
$shippingInformation = $order->getShippingAddress();
}