A boolean tag to determine if there are shipping options available.

shopp('shipping', 'has-options', '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 bool true if shipping estimates are available, false if no shipping estimates.

Alternative Forms



A boolean tag to determine if there are shipping options available.

This function will return true if there is at least one shipping estimate available, and false if there are no shipping options.

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('shipping','has-options')): ?>
    …content when shipping methods estimates have been calculated based on the cart contents…
<?php else: ?>
    …content shown if no shipping methods have been calculated…
<?php endif; ?>
<?php if ( shopp('shipping','has-options') ): ?>
<?php   while ( shopp('shipping','options') ): ?>
<?php       shopp('shipping', 'option-selector'); ?>
<?php   endwhile; ?>
<?php endif; ?>
<?php if ( shopp('shipping', 'has-options') ): ?>
<?php while ( shopp('shipping','options')): 
$selected = ''; 
if ( shopp('shipping','option-selected') ) 
    $selected = ' selected="selected"';
$value = shopp('shipping','get-option-slug');
$name = shopp('shipping','get-option-name');
$cost = shopp('shipping','get-option-cost');
$delivery = shopp('shipping', 'get-option-delivery');
$label = $name.' &mdash '.$cost.' '.$delivery;

<select name="shipmethod" class="shopp shipmethod">
<option value="<?php echo $value; ?>" <?php echo $selected; ?> ><?php echo $label; ?></option>

<?php endwhile; ?>
<?php endif; ?>

See Also

  1. Just a pointer, there is a missing single quote mark following get-option-cost.

    October 29th   #

  2. Fixed, thanks!

    January 13th   #

You must be logged in to post a comment.

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