Bob
Bob

Reputation: 8714

Magento 2 observer event not triggering

I have added this observer to my module and I put event definition in events.xml

# app/code/Vendor/ModuleName/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_submit_before">
        <observer name="vendor_modulename_order_save_before" instance="Vendor\ModuleName\Observer\OrderObserver" />
    </event>
</config>

I have added some logic in my observer

# app/code/Vendor/Name/Observer/OrderObserver.php
namespace Vendor\ModuleName\Observer;

use Magento\Framework\Event\Observer;
use Magento\Framework\Event\ObserverInterface;

class OrderObserver implements ObserverInterface
{

    public function __construct()
    {
    }

    /**
     * @param Observer $observer
     * @return void
     */
    public function execute(\Magento\Framework\Event\Observer $observer)
    {
        $quote = $observer->getQuote();
        ...
        ...
        ...
    }
}

Upvotes: 2

Views: 2802

Answers (1)

Emizen Tech
Emizen Tech

Reputation: 3591

try placing your events.xml as etc/events.xml

# app/code/Vendor/ModuleName/etc/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_submit_before">
        <observer name="vendor_modulename_order_save_before" instance="Vendor\ModuleName\Observer\OrderObserver" />
    </event>
</config>

and no need to use Magento\Framework\Event\Observer

# app/code/Vendor/ModuleName/Observer/OrderObserver.php
namespace Vendor\ModuleName\Observer;
use Magento\Framework\Event\ObserverInterface;

class OrderObserver implements ObserverInterface
{
    /**
     * @param Observer $observer
     * @return void
     */
    public function execute(\Magento\Framework\Event\Observer $observer)
    {
        $quote = $observer->getQuote();
        ...
        ...
        ...
    }
}

make sure to clean cache

bin/magento cache:clean

let me know if you are still having issues

Upvotes: 2

Related Questions