php - Magento 2 提交联系表格未显示成功/错误消息
问题描述
我在一个拥有多家商店的网站上使用 Magento 2.4.2:
- example.com/fr
- example.com/es
- example.com/us/en
- ...
我的问题是当有人在联系表单上提交时,没有显示成功或错误消息,并且应该包含它的 div 是空的(不是 css 问题)。
每个商店都很好地显示了其他消息,例如添加到购物车成功或捆绑选择选项。
我试图调试它,我发现了一些带有 cookie 的东西:
第一次访问 example.com/fr/contact 时,我将使用没有值的 cookie“mage_messages”,将“example.com”作为域,将“/fr”作为路径。提交时,将创建一个新的 cookie“mage_messages”,成功消息编码为值,“example.com”为域,“/”为路径。第一个cookie“mage_messages”与提交前相同
我试图用路径'/ fr'强制设置cookie中的编码值,刷新后出现消息。
似乎 Magento 正在设置一个路径错误的 cookie,这会导致创建一个具有所需值的新 cookie。
当错误出现时,“cookie 路径”配置为空。我试图将其设置为 '/' 或 '/fr' 但它没有效果所以我让它为空。
你能帮我看看发生了什么吗?
解决方案
如果其他人有这个问题,我在发布问题几个月后终于找到了解决方案(这是我的另一个帐户)。
我的解决方案:
问题出在子域上subdomain.domain.com
,问题是由子域的 cookie 配置引起的。
在 Store > Configuration > Web > Default Cookie Settings 中:
- 将 Cookie 路径设置为
/
- 将 Cookie 域设置为
subdomain.domain.com
然后清除缓存php bin/magento cache:flush
并在未显示消息的页面上继续,清除浏览器中的cookie并刷新。
它应该被纠正。
推荐阅读
- java - 反序列化没有默认构造函数的 JSON
- java - Swagger/Openapi-Annotations:如何使用 $ref 生成 allOf?
- .net - 忽略 sqlprojAssemblyReference.cache
- mysql - 如何根据同一数据库中另一个表的条件更新sql数据库表
- sql - 如何在子查询中使用“分组依据”?
- c# - 在 UWP 中显示主窗口的辅助窗口中心
- asp.net - 如何在 ubuntu 中使用 vs 代码安装和配置 asp.net?
- c - while 循环仅在条件为假并插入延迟时停止
- excel-formula - 根据多个搜索条件在多个列中搜索多个匹配项
- ansible - 我如何循环可能具有单个值的变量?