Provides a simple test mechanism to allow different template layouts to be shown depending on whether there are promotions applied to the current cart.


shopp('cart', 'has-promos', 'options')

@param string $object the object or object.tag combination, if object.tag is used, the tag parameter can be omitted
@param string $tag the tag, can be hyphenated or not. Prefix with 'get' as shorthand for the return=true option
@param mixed $options associative array, or url-style name=value pairs separated by ampersands (&). Each pair is passed to the theme api tag as an option.
@returns boolean True when the discount total is greater than 0

This tag returns a true or false value. When the shopping cart has a discount amount of greater than 0, it indicates that one or more promotional discounts are apply to the shopping cart.


Universal Options

All Theme API calls have these options.

  • return: when set to true, 1, or on, this option forces the tag to return the value instead of displaying/echoing the value to the page. Alternatively, prefix the tag parameter with get to get the same effect. All theme api tags that return a boolean value will return by default.
  • echo: when set to false, 0, or off, this option forces the tag to display the value to the page. This is the default for all non-boolean tags.
  • is: when set to true, 1, or on, this option will evaluate the return of the theme api call as a boolean true or false value. See how values are converted to boolean.


<?php if(shopp('cart','has-promos')) { … } ?>

Display applied promotion names and discount amounts

<?php if(shopp('cart','has-promos')): ?>
    <?php while(shopp('cart','promos')): ?>
        <li><?php shopp('cart','promo-name'); ?> (<?php shopp('cart','promo-discount'); ?>)</li>
    <?php endwhile; ?>
<?php else: ?>
    <p>No promos have been applied.</p>
<?php endif; ?>

See Also

You must be logged in to post a comment.

© Ingenesis Limited. Shopp™ is a registered trademark of Ingenesis Limited.