I am trying to get order information to do some tasks, after the order is placed. I tried with the events "checkout_submit_all_after" and also with "sales_order_place_after" but the only event I am able to capture with an observer is "checkout_onepage_controller_success_action". Can anyone help me to know how to get the order information with this event, or how to achieve it with another event. I need one that happens after the "Place" button is pressed.
My "events.xml":
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Event/etc/events.xsd">
<event name="checkout_cart_add_product_complete">
<observer name="add_order_cart" instance="Tracy\ShippingMethod\Observer\AddOrderToCart"/>
</event>
<event name="checkout_onepage_controller_success_action">
<observer name="send_order_tracy" instance="Tracy\ShippingMethod\Observer\SendOrderToTracy"/>
</event>
<event name="sales_order_place_after">
<observer name="send_order_tracy_sales" instance="Tracy\ShippingMethod\Observer\SendOrderToTracyFromSales"/>
</event>
</config>
My observer class:
class SendOrderToTracy implements \Magento\Framework\Event\ObserverInterface
{
public function execute(\Magento\Framework\Event\Observer $observer)
{
$writer = new \Zend\Log\Writer\Stream(BP.'/var/log/test.log'); // creates new log file named test.log in var/log folder
$logger = new \Zend\Log\Logger();
$logger->addWriter($writer);
$logger->info("Aquí caputré el evento: checkout_onepage_controller_success_action."); // this will be print in test.log file
$order_ids = $observer->getEvent()->getOrderIds();
$order_id = $order_ids[0];
$myText = (string)$order_id;
$logger->info($myText);
//HOW GET THE ORDER WITH THE ORDER_ID????!
}
}