The SD version is 1.19
Release Notes
Updates for 3.40
Warnings about ShippingDirectorIsActive and OtherShippingRateMethodsAreActive
Warning: Core 'Free shipping over X' is enabled
Warning: Actual store shipping will be 0 because ...
the cart has no items that require shipping
all products are marked for 'Free shipping'
the Customer role has free shipping"
Hide test button if SD is not active
Customer extension - HasAttribute (This accesses the customer shopping attributes, not the customer custom attributes). E.g.:
Customer.HasAttribute("DiscountCouponCode","freeshipping") //compare with InvariantCultureIgnoreCase
Update 2017-12 - Although the HasAttribute extension still works, it won't be able to check the DiscountCouponCode as in the above example. nopCommerce now supports multiple coupon codes applied to the cart. So, they now store XML in the DiscountCouponCode attribute. Also, the attribute can be the null string, and you cannot call methods (like ToLower() ) on null strings. This is how you can create a variable:
(Customer.GetAttribute("DiscountCouponCode") + ".").ToLower()
Or just test the condition directly:
(Customer.GetAttribute("DiscountCouponCode") + ".").ToLower().Contains("""couponcode""")
Note the extra quotes "" on both sides of string. The XML attribute is quoted. In the future, we'll create a collection property to make this easier.
---end of update---