我正在自定义安装在本地计算机上的 oxidshop 实例。我想在购物篮页面的第一步添加一个文本字段。该字段会将值保存到 oxorder 页面的新列中。
知道如何让它工作吗?
由于订单对象是在第 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')]);
}
您还需要删除 minibasket 弹出/弹出窗口中的“结帐”按钮,因为它会跳过购物篮页面并直接跳到第 2 步。