vendor/magento/module-sales/etc/events.xml
<event name="sales_order_save_after">
<observer name="sales_order_save_after" instance="Magento\Sales\Observer\SalesOrderSaveAfter" />
</event>
vendor/magento/module-sales/Observer/SalesOrderSaveAfter.php
namespace Magento\Sales\Observer;
use Magento\Framework\App\State;
use Magento\Framework\Event\Observer;
use Magento\Framework\Event\ObserverInterface;
use Magento\Sales\Api\Data\OrderPaymentInterface;
use Magento\Sales\Model\ResourceModel\Order\Payment\Collection;
use Psr\Log\LoggerInterface as PsrLogger;
class SalesOrderSaveAfter implements ObserverInterface
{
/**
* @var $_logger
*/
private $_logger;
/**
* @var \Magento\Framework\HTTP\Client\Curl
*/
protected $_curl;
/**
* ConvertAdditionalInfoObserver constructor.
* @param State $state
* @param \Magento\Framework\HTTP\Client\Curl $curl
*/
public function __construct(
PsrLogger $logger,
State $state,
\Magento\Framework\HTTP\Client\Curl $curl
)
{
$this->state = $state;
$this->_curl = $curl;
$this->_logger = $logger;
}
public function execute(\Magento\Framework\Event\Observer $observer)
{
$ObserverInterface = $observer->getEvent()->getOrder(); //Get customer object
if($ObserverInterface->getId()){
echo $ObserverInterface->getId()."<br>";
}
$OldStatus=$ObserverInterface->getOrigData('status');
$NewStatus=$ObserverInterface->getStatus();
echo "OldStatus: ".$OldStatus."<br>";
echo "NewStatus: ".$NewStatus."<br>";
}
}
Output
I am trying to get order status in sales_order_save_after observer, In the output am getting the result but it showing an interceptor error. what it means? how can i solve this issue??. Thanks in advance for your valuabe answers.