You are here

function commerce_coupon_form_submit in Commerce Coupon 7.2

Same name and namespace in other branches
  1. 7 includes/commerce_coupon_ui.forms.inc \commerce_coupon_form_submit()

Form submit callback: submit coupon entity form.

File

includes/commerce_coupon.admin.inc, line 144
Administrative forms and callbacks for Commerce Coupon.

Code

function commerce_coupon_form_submit(&$form, &$form_state) {
  $coupon =& $form_state['commerce_coupon'];
  $coupon->code = !empty($form_state['values']['code']) ? $form_state['values']['code'] : commerce_coupon_generate_coupon_code($coupon->type);
  $coupon->status = $form_state['values']['status'];

  // Attach fields.
  field_attach_submit('commerce_coupon', $coupon, $form, $form_state);

  // Save the coupon.
  commerce_coupon_save($coupon);
  $form_state['redirect'] = 'admin/commerce/coupons';
  $discounts = array();

  // Rebuild the discount rules for the discounts we're referencing and we
  // used to reference.
  foreach (array(
    $coupon,
    $form['#original'],
  ) as $coupon_instance) {
    if (!empty($coupon_instance->commerce_discount_reference)) {
      $coupon_wrapper = entity_metadata_wrapper('commerce_coupon', $coupon_instance);
      $discounts = array_merge($discounts, $coupon_wrapper->commerce_discount_reference
        ->value());
    }
  }
  if (!empty($discounts)) {
    _commerce_discount_rebuild_rules_config($discounts);
  }

  // Redirect based on the button clicked.
  drupal_set_message(t('Coupon saved.'));
}