How to check customer role

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.
Il y a 12 ans
Hi All,


How to check in nopCommerce2.30 customer role.

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

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