You are here

function commerce_coupon_remove_coupon_from_order in Commerce Coupon 7.2

Same name and namespace in other branches
  1. 7 commerce_coupon.module \commerce_coupon_remove_coupon_from_order()

Removes a coupon from an order.

Parameters

object $order: Order object to affect in the coupon removal.

object $coupon: Coupon object to remove.

bool $save: Whether or not to save the order.

3 calls to commerce_coupon_remove_coupon_from_order()
commerce_coupon_commerce_cart_order_refresh in ./commerce_coupon.module
Implements hook_commerce_cart_order_refresh().
commerce_coupon_handler_area_cart_form_submit in includes/views/handlers/commerce_coupon_handler_area_cart_form.inc
Submit: function commerce_coupon_handler_area_cart_form
commerce_coupon_remove_coupon_from_order_callback in ./commerce_coupon.module
Page callback: remove coupon from order.

File

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

Code

function commerce_coupon_remove_coupon_from_order($order, $coupon, $save = TRUE) {
  if (!commerce_coupon_order_allows_coupons($order)) {
    return;
  }
  $original_order = clone $order;
  $order_wrapper = entity_metadata_wrapper('commerce_order', $order);

  // Remove the coupons from the order relationship.
  foreach ($order_wrapper->commerce_coupons as $delta => $coupon_wrapper) {
    if ($coupon_wrapper->coupon_id
      ->value() == $coupon->coupon_id) {
      $order_wrapper->commerce_coupons
        ->offsetUnset($delta);
    }
  }
  if ($original_order != $order && $save) {
    commerce_order_save($order);
  }
}