如何设置未认证访客仅查看Oro商城无定价产品并移除定价标签
Oro商城未认证用户定价相关内容隐藏解决方案
完全可以删除所有定价相关的标签与显示内容,你可以按以下两种优先级从高到低的方案操作:
方案1:补充后台配置(无需修改代码,优先尝试)
- 登录Oro后台,进入
系统 > 用户管理 > 角色,找到匿名用户对应的默认角色Anonymous - 展开产品类权限项,关闭「查看价格」「添加到购物车」「查看购买数量配置」三个权限,保存后清理系统缓存
- 进入
系统 > 配置 > 销售 > 定价设置,找到访客可见规则分类,将「无可用价格时的提示文本」设置为空,勾选「对未认证用户隐藏所有定价关联区块」选项,保存后重新生成前端静态资源即可
方案2:主题模板覆写(配置不生效时可彻底移除对应模块)
Oro前端基于Twig模板体系,你可以通过自定义主题覆写对应模板,彻底移除不需要的渲染区块:
- 移除定价显示区块:在你的自定义主题目录下新建
templates/bundles/OroPricingBundle/Product/price_widget.html.twig文件,文件内容直接留空即可完全删除定价相关渲染 - 移除购买数量选择与加购区块:在自定义主题目录下新建
templates/bundles/OroProductBundle/Product/view/add_to_cart.html.twig,添加如下逻辑仅对认证用户显示对应模块:
{% if app.user is not null %} {# 原有数量选择、加购按钮的默认代码逻辑保留在此处即可 #} {% endif %}
- 执行生产环境缓存清理命令生效:
php bin/console cache:clear --env=prod
如果你有自定义开发的定价相关前端挂件,需要同步在挂件渲染逻辑中添加未认证用户的判断规则,避免遗漏显示。
内容的提问来源于stack exchange,提问作者Xenofon Giokas
相关产品推荐
相关产品推荐

