woocommerce 密码重置将清空购物车

问题描述

如果我重置密码然后再次登录商店,它会清空我的购物车,这正常吗?
这些是我已采取的步骤:

  • 登录woocommerce商店
  • 将产品添加到购物车
  • 退出商店
  • 重置我的密码
  • 使用新密码再次登录商店
  • 购物车现在是空的。 我相信是密码休息触发了购物车被清空。为什么它以这种方式工作?我想这是一个安全问题。 如果我不重置密码和注销然后再次登录,购物车将包含我之前添加的产品。这很好。

只是想知道为什么密码rest会清空购物车。

解决方法

只是想知道为什么密码rest会清空购物车。

这是正常行为。就像 Ozgur 说的那样,重置密码后用户会话被“清除”。

为什么会这样?我想这是一个安全问题。

这确实是一种基于安全的行为。如果您想更多地了解/了解正在发生的事情,可以查看什么是 Nonce。

来源@https://codex.wordpress.org/WordPress_Nonces.

为了避免这种行为并保持安全:

  • 您可以将用户购物车信息保存为 cookie/LocalStorage(基于 JS 的解决方案)(More @ https://www.w3schools.com/jsref/prop_win_localstorage.asp)并保存用户购物车中的产品 ID...
  • 您还可以将其保存为用户元数据(基于 PHP 的解决方案),并在特定情况下将其提供给用户。
  • 例如,当用户重新登录时,您可以向他显示一个弹出窗口和一个按钮,以再次将所有商品添加到他的购物车,或者通过添加所有商品将他直接重定向到他的购物车。您可以查看下面的链接以通过 url 添加产品。

来源@https://gist.github.com/lukecav/ab9dbdee88de686ce6b59c264cde8970