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

问题描述

简介

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

问题

如何在 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");

如果有人有想法或知道如何完成,请帮助我。 感谢您抽出宝贵时间。

解决方法

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

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

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

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