openart设置存储首选项



在Opencart中,我们有以下类型的产品。

印刷书籍(硬拷贝),将被运送给客户。

同样,我们有数字下载。

我们希望在存储层设置一个选项,用户是想看到下载还是打印副本。

当用户选择下载选项时,它应该只显示所有类别中可下载的产品。

当用户选择打印副本时,它应该只显示每个类别中的打印产品。

任何实现此功能的建议都是欢迎的。

谢谢

"有什么建议来实现这个功能"

从我的观点来看(这可能不是最佳的),我们需要:

  • 用户偏好的永久存储[5% done]
    在表<DB_PREFIX>customer中添加一列,如果用户对所有产品感兴趣,则该列的类型为INT,值为0,如果用户对数字下载感兴趣,则为1,以此类推……,如果以后有可能添加新的首选项,那么最好将所有用户首选项的序列化版本存储在类型为TEXT
  • 的列中。
  • 一种检索用户偏好的方法[25% done]
    您可以在每次需要时从数据库中检索它,更好的方法是将它保存在会话中,就像在类User中保存用户数据(如地址,电话)一样。
  • 一种改变用户偏好的方法[40% done]
    在用户设置页面的某个复选框中,也更可取(UX明智),用户偏好显示在他的名字旁边的标题中,可以直接从那里编辑
  • 最后,显示基于该偏好的产品[100%完成:D]
    您将需要在类别页面,最畅销模块,最新产品....的控制器更改一些代码(任何涉及展示产品的模块)
    • 简单,幼稚和丑陋的解决方案:
      你会注意到有一个代码段将产品数据复制到视图数据,它看起来像
      $data['products'][] = array(在oc2中。X和$this->data['products'][] = array(对于oc2之前的版本,这里一个简单的if条件就足够了,只需检查用户偏好并相应地决定是否将产品复制到视图数据
    • 更好的解决方案:
      在模型函数中从一开始就根据用户偏好过滤产品,在所有检索产品的模型函数中添加一个额外的可选参数(不要忘记那些检索产品计数的函数),表明用户偏好,检查模型函数内部是否设置了参数,然后在查询
    • 中工作

最新更新