Quiero obtener todos los detalles de envío en el evento checkout_onepage_controller_success_action.
Estoy usando el siguiente código:
$event = $observer->getEvent(); $orderIds = $event->getOrderIds(); $order_id = $orderIds[0]; $shipping = $order_id->getShippingAddress()->getData(); $shippingMethod = $order_id->getShippingMethod();Y me sale el error:
Error: llamar a una función miembro getShippingAddress() en una cadena.
Según yo, la forma de pasar $order_id en getShippingAddress() es incorrecta. ¿Alguien puede informarme sobre lo mismo? Quiero obtener datos completos a través de la identificación del pedido.
Este código dentro de su clase de observador debería funcionar:
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(); }