How to check customer role

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.
12 năm cách đây
Hi All,


How to check in nopCommerce2.30 customer role.

With Regards
Murali
12 năm cách đây
Not sure if this answers your question.  If you are talking about a role you added then the following will do:

if (customer.IsInCustomerRole("rolename"))
{
}
11 năm cách đây
hi i tried using this code in _ColumnsOne.cshtml and got an error CS0103: The name 'customer' does not exist in the current context

do i need to put additional code in before i can use it? im using nop v 2.6
11 năm cách đây
That code won't work in .cshtml files (Views).  Do you have Visual Studio 2010?  Do you know MVC?
11 năm cách đây
ah i see, i am a front end developer so i know a little mvc concept but i do not have visual studio
11 năm cách đây
The right way (MVC) to do this is in a Controller.  But here's a hack you can put at the top of the View (.cshtml file)


@using Nop.Services.Customers;

@{
    bool customerHasRoleX = EngineContext.Current.Resolve<IWorkContext>().CurrentCustomer.IsInCustomerRole("X");
}


You can then reference the customerHasRoleX variable - you will need to reference it as @customerHasRoleX, if you are not within the scope of another @{ ...} block
11 năm cách đây
I have verion 2.8.  and get error The type or namespace name 'IWorkContext' could not be found (are you missing a using directive or an assembly reference?

I put in the reference @using Nop.Services.Customers, as well
11 năm cách đây
try adding

@using Nop.Core
11 năm cách đây
Thank you that did it!! Nothing like a break after searching for a week!
11 năm cách đây
At the top of the cshtml, I needed:

@using Nop.Core;
@using Nop.Core.Domain.Customers;
@using Nop.Core.Infrastructure;
@using Nop.Services.Customers;


Then in the page I added:

@if (EngineContext.Current.Resolve<IWorkContext>().CurrentCustomer.IsInCustomerRole("xx"))
{
     //my stuff
}

Works great, thanks!
This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.