Page 1 of 1

Change Text Displayed Based on User's Group

Posted: Mon May 04, 2009 9:37 pm
by gary-trainsignal
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

Re: Change Text Displayed Based on User's Group

Posted: Tue May 05, 2009 2:50 am
by mazhar
Try

Code: Select all

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

Re: Change Text Displayed Based on User's Group

Posted: Tue May 05, 2009 2:25 pm
by gary-trainsignal
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.

Re: Change Text Displayed Based on User's Group

Posted: Thu May 07, 2009 9:32 am
by mazhar
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.