Change Text Displayed Based on User's Group

For general questions and discussions specific to the AbleCommerce 7.0 Asp.Net product.
Post Reply
gary-trainsignal
Ensign (ENS)
Ensign (ENS)
Posts: 13
Joined: Mon Dec 08, 2008 1:10 pm
Location: Rolling Meadows, IL
Contact:

Change Text Displayed Based on User's Group

Post by gary-trainsignal » Mon May 04, 2009 9:37 pm

So I'm playing around with the nVelocity code to display different text based on if a user belongs to a specific group. Here is the code I have, but when deployed the whole page is blank:

Code: Select all

#if$User.IsInGroup(10)
<a href="#" target="_blank" >Now Available</a>
#else
Coming Soon
#end
Any help with correcting the syntax would be much appreciated.

Thanks
_________________
Gary Eimerman
Train Signal
Global Leader in Professional Computer Training
http://www.trainsignal.com
http://garyeimerman.com

User avatar
mazhar
Master Yoda
Master Yoda
Posts: 5084
Joined: Wed Jul 09, 2008 8:21 am
Contact:

Re: Change Text Displayed Based on User's Group

Post by mazhar » Tue May 05, 2009 2:50 am

Try

Code: Select all

#if($customer.IsInGroup(10))
<a href="#" target="_blank" >Now Available</a>
#else
Coming Soon
#end

gary-trainsignal
Ensign (ENS)
Ensign (ENS)
Posts: 13
Joined: Mon Dec 08, 2008 1:10 pm
Location: Rolling Meadows, IL
Contact:

Re: Change Text Displayed Based on User's Group

Post by gary-trainsignal » Tue May 05, 2009 2:25 pm

Thanks! It worked perfectly.

Has anyone attempted and documented how to add a user to a group(s) automatically when they purchase a given product(s)?

That would just make my day wonderful.
_________________
Gary Eimerman
Train Signal
Global Leader in Professional Computer Training
http://www.trainsignal.com
http://garyeimerman.com

User avatar
mazhar
Master Yoda
Master Yoda
Posts: 5084
Joined: Wed Jul 09, 2008 8:21 am
Contact:

Re: Change Text Displayed Based on User's Group

Post by mazhar » Thu May 07, 2009 9:32 am

In order to place user into a group you need to put some code in CheckedOut event handler of OnePageCheckout page. Where you can grab newly placed order and then check its item for desired product. If order contains your desired product then you can put this user into desired group.

Code: Select all

Order order = OrderDataSource.Load(e.OrderId, false);
        if (order != null)
        {
            foreach (OrderItem orderItem in order.Items)
            {
                if(orderItem.OrderItemType == OrderItemType.Product)
                {
                    //If desired product purchased
                    if (orderItem.ProductId == 12)
                    {
                        //Check if user is not already a member of this group where 11 is the desired group id 
                        //You can found it from ac_Groups table for your group
                        if (!Token.Instance.User.IsInGroup(11))
                        {
                            UserGroup userGroup = new UserGroup(Token.Instance.User.UserId,11);
                            Token.Instance.User.UserGroups.Add(userGroup);
                            Token.Instance.User.Save();
                        }
                    }
                }
            }
        }
If you want this functionality available only for registered users then you can wrap the logic with an if depending upon Token.Instance.User.IsAnonymous.

Post Reply