You are here

function commerce_coupon_order_coupon_code_discounts in Commerce Coupon 7.2

Load common discounts that are present in a coupon (by code) and an order.

Parameters

string $code: A coupon code.

object $order: An order entity.

Return value

array A list of discount entities.

2 calls to commerce_coupon_order_coupon_code_discounts()
commerce_coupon_commerce_cart_order_refresh in ./commerce_coupon.module
Implements hook_commerce_cart_order_refresh().
commerce_coupon_handler_field_discount_value_display::render in includes/views/handlers/commerce_coupon_handler_field_discount_value_display.inc
Overrides parent::render().

File

./commerce_coupon.module, line 1168
Provides coupon functionality for Drupal Commerce.

Code

function commerce_coupon_order_coupon_code_discounts($code, $order) {
  $coupon = commerce_coupon_load_by_code($code);
  $coupon_wrapper = entity_metadata_wrapper('commerce_coupon', $coupon);
  if ($coupon->type == 'discount_coupon' && $coupon_wrapper->commerce_discount_reference
    ->value()) {

    // Line item level discounts are not stored on the order, so we have to dig
    // through the price components.
    $order_discount_ids = commerce_coupon_order_discount_ids($order);
    $discount_ids = array_intersect($coupon_wrapper->commerce_discount_reference
      ->raw(), $order_discount_ids);
    return commerce_coupon_discount_load_multiple($discount_ids);
  }
  return array();
}