Nick Parsons
Nick Parsons

Reputation: 8607

Magento observer not firing

Having an issue where a custom observer isn't picking up on events. The module is enabled and showing up in the advanced section of the dashboard. I've cleared all cache, etc., so it has to be a small configuration issue.

Can anyone help spot the issue?

config.xml

<modules>
    <Hatclub_MembershipHandler>
        <version>1.0.0</version>
    </Hatclub_MembershipHandler>
</modules>

<global>

    <models>
        <dispatcher>
            <class>Hatclub_MembershipHandler_Model</class>
        </dispatcher>
    </models>

    <events>

        <customer_register_success>
            <observers>
                <registration_success_observer>
                    <class>dispatcher/observer</class>
                    <method>associateMembership</method>
                </registration_success_observer>
            </observers>
        </customer_register_success>

        <customer_session_init>
            <observers>
                <session_init_observer>
                    <class>dispatcher/observer</class>
                    <method>associateMembership</method>
                </session_init_observer>
            </observers>
        </customer_session_init>

        <customer_login>
            <observers>
                <login_observer>
                    <class>dispatcher/observer</class>
                    <method>associateMembership</method>
                </login_observer>
            </observers>
        </customer_login>

    </events>

</global>

Observer.php

class Hatclub_MembershipHandler_Model_Observer {

    // this is hook to magento event dispatched before action is run [only allow if membership exists]
    public function associateMembership(Varien_Event_Observer $observer) {

        // event
        $event = $observer->getEvent()->getControllerAction()->getFullActionName();

        Mage::log('**** EVENT FIRED ****' . $event);

        Mage::log(json_encode($observer->getEvent()));

    }

}

Upvotes: 0

Views: 1266

Answers (1)

Amit Kumar
Amit Kumar

Reputation: 1782

Modify your config.xml to

<modules>
    <Hatclub_MembershipHandler>
        <version>1.0.0</version>
    </Hatclub_MembershipHandler>
</modules>

<global>

    <models>
        <dispatcher>
            <class>Hatclub_MembershipHandler_Model</class>
        </dispatcher>
    </models>

    <events>

        <customer_register_success>
            <observers>
                <registration_success_observer>
                    <class>Hatclub_MembershipHandler_Model_Observer</class>
                    <method>associateMembership</method>
                </registration_success_observer>
            </observers>
        </customer_register_success>

        <customer_session_init>
            <observers>
                <session_init_observer>
                    <class>Hatclub_MembershipHandler_Model_Observer</class>
                    <method>associateMembership</method>
                </session_init_observer>
            </observers>
        </customer_session_init>

        <customer_login>
            <observers>
                <login_observer>
                    <class>Hatclub_MembershipHandler_Model_Observer</class>
                    <method>associateMembership</method>
                </login_observer>
            </observers>
        </customer_login>

    </events>

</global>

You have mentioned wrong class name.

Upvotes: 2

Related Questions