You are here

function commerce_extra_quantity_validate_cardinality in Commerce Extra 7

Validation callback for checking cardinality.

1 string reference to 'commerce_extra_quantity_validate_cardinality'
commerce_extra_quantity_form_alter in modules/quantity/commerce_extra_quantity.module
Implements hook_form_alter(). Adds additional theme wrappers for add to cart's quantity textfields.

File

modules/quantity/commerce_extra_quantity.module, line 96
Contains Commerce Quantity Plus-Minus module's functionality.

Code

function commerce_extra_quantity_validate_cardinality(&$form, &$form_state) {

  // Figure out quantity level(s)
  $str = 'commerce_cart_add_to_cart_form_';
  $view_cart = 'views_form_commerce_cart_form_';
  $form_id = $form['#form_id'];
  if (drupal_substr($form_id, 0, drupal_strlen($str)) == $str) {
    $quantities = array(
      $form_state['values']['quantity'],
    );
  }
  elseif (drupal_substr($form_id, 0, drupal_strlen($view_cart)) == $view_cart) {
    $quantities = $form_state['values']['edit_quantity'];
  }

  // Validate each quantity
  $quantity_cardinality = variable_get('commerce_extra_quantity_cardinality', 1);
  foreach ($quantities as $key => $quantity) {
    if ($quantity % $quantity_cardinality) {

      // Quantity is not divisible by quantity cardinality
      form_set_error('', t('Incorrect quantity level.'));
      watchdog('commerce_extra_quantity', 'Tried to submit a form with incorrect quantity level @quantity when having quantity cardinality of @quantity_cardinality', array(
        '@quantity' => $quantity,
        '@quantity_cardinality' => $quantity_cardinality,
      ), WATCHDOG_ERROR);
    }
  }
}