我正在自定义安装在本地计算机上的oxidshop实例。我想在购物篮页面的第一步添加一个文本字段。该字段会将值保存到oxorder页面的新列中。
有任何想法如何使其正常工作吗?
答案 0 :(得分:0)
由于在第4步之后创建了订单对象,因此您需要将用户输入存储在某处。
我建议使用会话。
因此,您需要通过将“ fnc = myfunction”请求参数添加到表单中,将购物篮页面上的“继续进行下一步”按钮重定向到user
控制器中的新功能(将用户输入存储在会话中)。已提交:
<input type="hidden" name="fnc" value="myfunction"/>
此值存储在会话中之后,您将需要扩展oxOrder
函数_setUser()
,并在调用parent::_setUser()
之后将会话变量保存在oxorder中:
protected function _setUser ($oUser) {
parent::_setUser($oUser);
$this->assign(['oxorder__myvalue' => oxRegistry::getSession()->getVariable('myvalue')]);
}
您还需要删除迷你购物篮弹出/弹出窗口中的“签出”按钮,因为它会跳过购物篮页面,并直接跳到步骤2。