0

介绍

我正在开发一个插件,它需要在某些条件下隐藏“确认”按钮(写在动作过滤器中)。

问题

如何从 nopcommerce 的插件中隐藏结帐页面上的确认按钮。

问题

实际上,我无法按照某些解决方案中的建议进行视图覆盖(并使用 ViewData),但我不能在视图中进行覆盖。

考虑从我为 /Checkout/Complete --get 编写的操作过滤器中解决问题

 //if checkout process is generic
bool IsCheckoutConfirm = (filterContext.RouteData.Values["controller"].Equals("Checkout")
     && (filterContext.RouteData.Values["action"].Equals("Confirm")) && filterContext.HttpContext.Request.HttpMethod == "GET");

如果有人有想法或知道如何完成,请帮助我。谢谢你的时间。

4

1 回答 1

1

最简单的方法是复制 Confirm.cshtml 页面并将其放在以下两个位置之一:

  • 您主题的views/checkout/文件夹
  • 在您的插件中为 Themes/views/checkout/ 创建一个文件夹结构

获得 Confirm.cshtml 的副本后,您可以将确认按钮包装在“if”条件中,该条件为插件中的布尔值编码,用于确定是否公开按钮。

有多种方法可以传递该值,或者通过在插件中扩展 CheckoutConfirmModel、操作过滤器等​​。

于 2021-05-19T22:11:51.217 回答