Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Magento 创建帐户并将产品放入购物车后重定向到结帐_Magento - Fatal编程技术网

Magento 创建帐户并将产品放入购物车后重定向到结帐

Magento 创建帐户并将产品放入购物车后重定向到结帐,magento,Magento,我有一个特殊情况,用户必须通过帐户注册页面(例如/customer/account/create/)注册帐户。完成后,如果他们的购物车中有产品,我需要将他们重定向回结帐屏幕 我目前有一名观察员,负责收听客户注册成功事件。观察员通过以下代码将用户帐户升级为成员组: class Hatclub_MembershipHandler_Model_Observer { // members group id const GROUP_ID = 4; // called when

我有一个特殊情况,用户必须通过帐户注册页面(例如/customer/account/create/)注册帐户。完成后,如果他们的购物车中有产品,我需要将他们重定向回结帐屏幕

我目前有一名观察员,负责收听
客户注册成功
事件。观察员通过以下代码将用户帐户升级为成员组:

class Hatclub_MembershipHandler_Model_Observer {

    // members group id
    const GROUP_ID = 4;

    // called when a customer registers for the site
    public function registrationSuccess(Varien_Event_Observer $observer) {

        // extract customer data from event
        $customer = $observer->getCustomer();

        // a cookie should have been set with the membership id
        if (isset($_COOKIE['membership_account_id'])) {

            $customer
                ->setGroupId(self::GROUP_ID)
                ->setRmsId($_COOKIE['membership_account_id']);

        }

        return $this;

    }

}

有没有其他更适合我的活动?我有一个重定向到cookie的方法,如果有帮助的话也可以使用。

经过多次尝试和错误,我找到了一个解决方案。由于我已经在使用
customer\u register\u success
事件并与我的观察者一起修改用户数据,因此我不得不在
之后使用另一个名为
customer\u save\u的事件,它起到了很好的作用

config.xml事件块

<customer_save_after>
    <observers>
        <customer_session_observer>
            <class>hatclub_membership_handler/observer</class>
            <method>customerSave</method>
            <type>singleton</type>
        </customer_session_observer>
    </observers>
</customer_save_after>
观察者内部的重定向有点困难,但我使用

Mage::app()->getResponse()
    ->setHeader('Location', $redirect_url)
    ->sendHeaders();
欢迎提出建议和批评

Mage::app()->getResponse()
    ->setHeader('Location', $redirect_url)
    ->sendHeaders();