How to check customer role

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.
12 anos atrás
Hi All,


How to check in nopCommerce2.30 customer role.

With Regards
Murali
12 anos atrás
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 anos atrás
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 anos atrás
That code won't work in .cshtml files (Views).  Do you have Visual Studio 2010?  Do you know MVC?
11 anos atrás
ah i see, i am a front end developer so i know a little mvc concept but i do not have visual studio
11 anos atrás
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 anos atrás
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 anos atrás
try adding

@using Nop.Core
11 anos atrás
Thank you that did it!! Nothing like a break after searching for a week!
11 anos atrás
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.