You are here

function commerce_cart_expiration_block_view in Commerce Cart Expiration 7

Implements hook_block_view().

File

./commerce_cart_expiration.module, line 207
Provides a time-based cart expiration feature.

Code

function commerce_cart_expiration_block_view($delta) {
  global $user;
  if ($delta == 'cart_expiration') {
    $content = '';
    if ($order = commerce_cart_order_load($user->uid)) {
      $order_wrapper = entity_metadata_wrapper('commerce_order', $order);

      // Only show the block content if we found product line items.
      if (commerce_line_items_quantity($order_wrapper->commerce_line_items, commerce_product_line_item_types()) > 0) {
        $interval = _commerce_cart_expiration_get_interval();

        // If an interval is set.
        if ($interval) {
          $statuses = commerce_order_statuses(array(
            'cart' => TRUE,
          ));
          if (isset($statuses[$order->status])) {

            // This order is in cart status.
            $expire_in = _commerce_cart_expiration_get_expiration($order, $interval);

            // Get text from block configuration.
            $text = variable_get('commerce_cart_expiration_' . $delta . '_content', '<p>' . t('Your cart expires in [commerce-order:expiration-formatted].') . '<p>');
            $text = check_markup($text, variable_get('commerce_cart_expiration_' . $delta . '_content_format', NULL));

            // Apply token values.
            $text = token_replace($text, array(
              'commerce-order' => $order,
              'site' => NULL,
              'user' => $user,
            ));
            $variables = array(
              'order' => $order,
              'expire_in' => $expire_in,
              'content' => $text,
            );
            $content = theme('commerce_cart_expiration_block', $variables);
          }
        }
      }
    }
    return array(
      'subject' => t('Cart expiration'),
      'content' => $content,
    );
  }
}