You are here

function commerce_coupon_validate_code in Commerce Coupon 7.2

Element validate callback: validate coupon code.

1 string reference to 'commerce_coupon_validate_code'
commerce_coupon_attach_coupon_entity_form in ./commerce_coupon.module
Attach a coupon entity form to a form or form fragment.

File

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

Code

function commerce_coupon_validate_code($element, &$form_state) {
  $path = implode('][', $element['#array_parents']);
  $coupon_form_values = drupal_array_get_nested_value($form_state['values'], array_slice($element['#array_parents'], 0, -1));

  // Ensure code is not empty unless we are generating a random one.
  if (empty($coupon_form_values['generate'])) {
    if (empty($element['#value'])) {
      form_set_error($path, t('You must enter a code.'));
      return;
    }
    $code = trim($element['#value']);

    // Do not allow existing coupon codes, unless it is merely saving itself.
    $coupon = commerce_coupon_load_by_code($code);
    if ($coupon && (empty($element['#coupon_id']) || $element['#coupon_id'] != $coupon->coupon_id)) {
      form_set_error($path, t('The code that you entered already exists.'));
    }
  }

  // Ensure unique code if inserting.
  if (!empty($form_state['edit_coupon']->is_new) && commerce_coupon_load_by_code($element['#value'])) {
    form_set_error($path, t('The code that you entered already exists.'));
  }
}