How to check customer role

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.
12 yıl önce
Hi All,


How to check in nopCommerce2.30 customer role.

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

@using Nop.Core
11 yıl önce
Thank you that did it!! Nothing like a break after searching for a week!
11 yıl önce
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.