Magento在观察员结账时显示div

时间:2015-01-27 11:55:25

标签: json magento checkout

我正在编写一个自定义Magento模块来检查访客用户是否使用已注册的电子邮件地址。 该模块使用controller_action_predispatch_checkout_onepage_saveBilling观察者进行检查。 我正在努力的是如何在计费面板底部的某处显示(或动态插入)带有错误消息的div。 观察者工作正常,但现在我一直坚持向用户显示错误。我正在使用以下方法显示JS警报但我现在需要包含一个可点击的链接..

        $response = array('error' => -1, 'message' => Mage::helper('core')->__($errorMsg));
        return $controller->getResponse()->setBody(Mage::helper('core')->jsonEncode($response)); 

任何想法如何实现这一目标?

由于

2 个答案:

答案 0 :(得分:0)

您可以做的是在控制器中注册错误消息,并在模板文件中检查它。

所以在你的控制器中:

 Mage::register('error_msg', $myErrorMsg);

然后在你的模板文件中:

 $errorMsg = Mage::registry('error_msg');
 if(!is_null($errorMsg)):
      //do your magic here
 endif;

答案 1 :(得分:0)

我的想法是:

1)在输入账单地址后,在继续按钮上创建自己的jquery点击功能。

2)在电子邮件输入下面创建一个div,里面没有文字。保持这个div隐藏。

3)当用户填写结算明细并单击“继续”时,向您的自定义控制器发送ajax请求。

4)检查该电子邮件ID是否已存在客户,如果是,则将电子邮件ID设为空白&使步骤2中的div可见,并在其innethtml文本中添加警告消息。添加e.preventDefault()以防止magento的默认savebilling ajax操作。

5)如果没有电子邮件ID。 return true将继续magento的默认操作。

任何会话设置获取变量都有点困难,因为大部分结账工作都是由AJAX完成的,无需刷新页面。