php - 在 Magento 2 中的 checkout_onepage_controller_success_action 上获取送货地址
问题描述
我想获取有关 checkout_onepage_controller_success_action 事件的所有运输详细信息。
我正在使用以下代码:
$event = $observer->getEvent();
$orderIds = $event->getOrderIds();
$order_id = $orderIds[0];
$shipping = $order_id->getShippingAddress()->getData();
$shippingMethod = $order_id->getShippingMethod();
我得到了错误:
错误:调用字符串上的成员函数 getShippingAddress()。
根据我的说法,在 getShippingAddress() 上传递 $order_id 的方式是错误的。有人可以向我简要介绍一下吗?我想跨订单 ID 获取完整数据。
解决方案
您的观察者类中的这段代码应该可以工作:
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();
}
推荐阅读
- asp.net-core - 浏览器访问时 ASP.NET Core 看不到图像
- kubernetes - HelmChart 可以预装钩子,修改图表资源吗?
- r - R中的read.csv()“输入中没有可用的行”错误
- linux - X 服务器 8 位伪彩色启动调色板 (linux xdoom)
- c# - ASP.net MVC 错误:并非所有代码路径都返回值
- ios - 测试 iOS IAP 的退款
- python - 路由器不响应欺骗性 DNS 查询
- azure - How to archive old CosmosDB data to Azure Table using Azure Data Factory when CosmosDB collection documents have different properties?
- angular - 当从 Angular 中的 API 获取选项时,在选择的对象中设置选项
- jboss - 连接被拒绝并且无法连接到控制器错误