0

我正在自定义安装在本地计算机上的 oxidshop 实例。我想在购物篮页面的第一步添加一个文本字段。该字段会将值保存到 oxorder 页面的新列中。

知道如何让它工作吗?

4

1 回答 1

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')]); }

您还需要删除 minibasket 弹出/弹出窗口中的“结帐”按钮,因为它会跳过购物篮页面并直接跳到第 2 步。

于 2018-09-26T07:46:46.070 回答