NopCommerce 增加 Customer Settings

本文介绍如何在NopCommerce平台中为Customer实体增加MemberType字段,并设置其启用及必填选项。通过修改配置文件、数据库模型及前端展示等步骤实现需求。

预期:

仿照Customer 的 Phone number enabled 和 required

增加MemberType

 

相关步骤如下:

1.运行站点

Admin -> Settings -> All settings(advanced)

-> Add new record

仿照 customersettings.phone 新增

customersettings.membertypeenabled

customersettings.membertyperequired

        

2.运行站点

Admin -> Configuration -> Languages -> Edit

-> Add new record

仿照 CustomerUser.phone 新增

Admin.Configuration.Settings.CustomerUser.MemberTypeEnabled

Admin.Configuration.Settings.CustomerUser.MemberTypeRequired

        

3.Nop.Core\Domain\Customers\CustomerSettings.cs

仿照 PhoneEnabled 及 PhoneRequired 新增

/// <summary>

/// Gets or sets a value indicating whether 'Member Type' is enabled

/// </summary>

public bool MemberTypeEnabled { get; set; }

/// <summary>

/// Gets or sets a value indicating whether 'Member Type' is required

/// </summary>

public bool MemberTypeRequired { get; set; }

 

                  

4.Presentation\Nop.Web\Administration\Models\Settings\CustomerUserSettingsModel.cs

修改 CustomerSettingsModel

仿照 PhoneEnabled 及 PhoneRequired 新增

 

[NopResourceDisplayName("Admin.Configuration.Settings.CustomerUser.MemberTypeEnabled")]

public bool MemberTypeEnabled { get; set; }

 

[NopResourceDisplayName("Admin.Configuration.Settings.CustomerUser.MemberTypeRequired")]

public bool MemberTypeRequired { get; set; }

                  

                  

5.Presentation\Nop.Web\Administration\Views\Setting\CustomerUser.cshtml

仿照 PhoneEnabled 及 PhoneRequired 新增

<div class="form-group">

         <div class="col-md-3">

                   @Html.NopLabelFor(model => model.CustomerSettings.MemberTypeEnabled)

         </div>

         <div class="col-md-9">

                   @Html.NopEditorFor(model => model.CustomerSettings.MemberTypeEnabled)

                   @Html.ValidationMessageFor(model => model.CustomerSettings.MemberTypeEnabled)

         </div>

</div>

<div class="form-group" id="pnlMemberTypeRequired">

         <div class="col-md-3">

                   @Html.NopLabelFor(model => model.CustomerSettings.MemberTypeRequired)

         </div>

         <div class="col-md-9">

                   @Html.NopEditorFor(model => model.CustomerSettings.MemberTypeRequired)

                   @Html.ValidationMessageFor(model => model.CustomerSettings.MemberTypeRequired)

         </div>

</div>

                  

 

if ($('#@Html.FieldIdFor(model => model.CustomerSettings.MemberTypeEnabled)').is(':checked')) {

         $('#pnlMemberTypeRequired').show();

} else {

         $('#pnlMemberTypeRequired').hide();

}

 

 

$("#@Html.FieldIdFor(model => model.CustomerSettings.MemberTypeEnabled)").click(toggleCustomerRequiredFormField);

                  

6.解决方案 Clean 和 Rebuild

 

7.运行站点 查看效果

                  

 

其他:

Presentation\Nop.Web\Administration\Controllers\SettingController.cs

 

public ActionResult CustomerUser()

{

         if (!_permissionService.Authorize(StandardPermissionProvider.ManageSettings))

                   return AccessDeniedView();

 

         var storeScope = this.GetActiveStoreScopeConfiguration(_storeService, _workContext);

         var customerSettings = _settingService.LoadSetting<CustomerSettings>(storeScope);

                           

 

Presentation\Nop.Web\Administration\Infrastructure\Mapper\AutoMapperConfiguration.cs

         仿照  cfg.CreateMap<CustomerUserSettingsModel.CustomerSettingsModel, CustomerSettings>()

             //.ForMember(dest => dest.MemberTypeEnabled, mo => mo.Ignore())

                   //.ForMember(dest => dest.MemberTypeRequired, mo => mo.Ignore())

                                              

        

        

转载于:https://www.cnblogs.com/freeliver54/p/6178072.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值