0
votes

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()));

    }

}
1
I am not quite sure if this will help, but can you try my code snippet: gist.github.com/4523798 ... Basically my suggestion is to move the customer login event from global node to frontend node. Try to modify your confix.xml and then see what will happen, when you log in. - ceckoslab

1 Answers

2
votes

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.