Loops through the promotions applied to the cart to display information specific to each applied promotion.


shopp('cart', '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 if there is a valid promotion that applies to the cart

This tag returns a true or false value. When used, it automatically attempts to iterate to the next discount that applies (if any). When there are no more discounts that apply it will return false.

This is useful for looping through the promotions applied to the cart to display information specific to each promotion that applies. This is a construct similar to “The Loop” in WordPress and operates in much the same manner. The tag functions as an iterator, returning a true value for each call as it passes over each promotion applied to the cart, and then false when there are no more promo discounts.


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 while(shopp('cart','promos')) { … } ?>

Display applied promotion names and discount amounts

<?php if(shopp('cart','haspromos')): ?>
    <?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.