Magento 2.0.1 Observer – Capture Place Order Issue

event-observermagento2

I am working in simple event/observer module, but it does not work. I am trying to log the message in deubug.log when click place order button.

I have listed below what I have done

app/code/Gworks/Sms/etc/frontend/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_directpost_placeOrder">
    <observer name="get_place_order" instance="Gworks\Sms\Observer\LogAddMessage"/>
    </event>
</config>

app/code/Gworks/Sms/etc/module.xml

<?xml version="1.0" encoding="UTF-8"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd">
    <module name="Gworks_Sms" setup_version="1.0.0"/>
</config>

app/code/Gworks/Sms/Observer/LogAddMessage.php

<?php
namespace Gworks\Sms\Observer;
use Magento\Framework\Event\ObserverInterface;
class LogAddMessage implements ObserverInterface
{
    protected $_logger;
    public function __construct(
    \Psr\Log\LoggerInterface $logger, //log injection
    array $data = []
    ) {
    $this->_logger = $logger;
    //parent::__construct($data);
    }
    public function execute(\Magento\Framework\Event\Observer $observer)
    {
       $this->_logger->addDebug('getplace oreder event occured successfully!');
    }
}

app/code/Gworks/Sms/registration.php

<?php
\Magento\Framework\Component\ComponentRegistrar::register(
    \Magento\Framework\Component\ComponentRegistrar::MODULE,
    'Gworks_Sms',
    __DIR__
);

Thanks

Best Answer

Your event checkout_directpost_placeOrder is wrong.It is only fire whenever Payment method is Authorizenet Directpost

use sales_order_place_after event.