You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

NopCommerce 4.60.3无源码版升级后能否自动添加Nop Quick Tabs?

解决NopCommerce 4.60.3升级后Nop Quick Tabs自动添加到标签栏的方法

针对你使用无源码版NopCommerce 4.60.3,每次升级后Nop Quick Tabs菜单消失的问题,提供两种无需手动添加的解决方案:

方案1:数据库脚本自动恢复菜单

NopCommerce后台导航菜单存储在[dbo].[MenuItem]和[dbo].[PermissionRecord]表中,可通过SQL脚本自动检查并添加菜单:

  1. 先查询Quick Tabs对应的权限记录ID:
SELECT Id FROM [dbo].[PermissionRecord] WHERE SystemName = 'Nop.Plugin.Widgets.QuickTabs.Manage'
  1. 替换以下脚本中的{PermissionId}和{ParentMenuItemId}({ParentMenuItemId}为父菜单ID,比如插件菜单的SystemName为Plugins,可先查询其ID),执行脚本:
IF NOT EXISTS (SELECT 1 FROM [dbo].[MenuItem] WHERE SystemName = 'Nop.Plugin.Widgets.QuickTabs')
BEGIN
    INSERT INTO [dbo].[MenuItem] (Name, SystemName, ParentMenuItemId, Url, IconClass, DisplayOrder, PermissionRecordId, Published, IsNew, CreatedOnUtc, UpdatedOnUtc)
    VALUES ('Nop Quick Tabs', 'Nop.Plugin.Widgets.QuickTabs', {ParentMenuItemId}, 'Plugins/WidgetsQuickTabs/Configure', 'fa fa-list', 100, {PermissionId}, 1, 0, GETUTCDATE(), GETUTCDATE())
END

你可以将脚本保存为文件,每次升级后手动执行,或通过SQL Server代理设置为自动执行(需数据库权限)。

方案2:自定义插件自动注册菜单

开发一个轻量插件,在系统启动时自动检查并添加菜单(无需修改Nop核心源码):

编写实现IStartupTask的插件类:

public class AddQuickTabsMenuTask : IStartupTask
{
    private readonly IMenuItemService _menuItemService;
    private readonly IPermissionService _permissionService;

    public AddQuickTabsMenuTask(IMenuItemService menuItemService, IPermissionService permissionService)
    {
        _menuItemService = menuItemService;
        _permissionService = permissionService;
    }

    public void Execute()
    {
        var quickTabsPermission = _permissionService.GetPermissionRecordBySystemName("Nop.Plugin.Widgets.QuickTabs.Manage");
        if (quickTabsPermission == null) return;

        var existingMenuItem = _menuItemService.GetMenuItemBySystemName("Nop.Plugin.Widgets.QuickTabs");
        if (existingMenuItem != null) return;

        var pluginsMenuItem = _menuItemService.GetMenuItemBySystemName("Plugins");
        if (pluginsMenuItem == null) return;

        var newMenuItem = new MenuItem
        {
            Name = "Nop Quick Tabs",
            SystemName = "Nop.Plugin.Widgets.QuickTabs",
            ParentMenuItemId = pluginsMenuItem.Id,
            Url = "Plugins/WidgetsQuickTabs/Configure",
            IconClass = "fa fa-list",
            DisplayOrder = 100,
            PermissionRecordId = quickTabsPermission.Id,
            Published = true,
            CreatedOnUtc = DateTime.UtcNow,
            UpdatedOnUtc = DateTime.UtcNow
        };

        _menuItemService.InsertMenuItem(newMenuItem);
    }

    public int Order => 10;
}

编译插件后上传至NopCommerce的Plugins目录,安装启用即可。每次系统启动(包括升级后)会自动检查并添加菜单。

注意事项

  • 方案1需确认父菜单ID的正确性,操作前备份数据库;
  • 方案2需具备基础.NET开发能力,插件需符合NopCommerce 4.60.3的插件规范。

内容的提问来源于stack exchange,提问作者Grampiano

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 20:33:38