我正在编写一个自定义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));
任何想法如何实现这一目标?
由于
答案 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完成的,无需刷新页面。