wwwroot/sites/all/modules/ife/ife.module | 38 +++++++++++++++--------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/wwwroot/sites/all/modules/ife/ife.module b/wwwroot/sites/all/modules/ife/ife.module index 5e738b6..8a8d80a 100644 --- a/wwwroot/sites/all/modules/ife/ife.module +++ b/wwwroot/sites/all/modules/ife/ife.module @@ -185,7 +185,13 @@ function ife_form_alter(&$form, $form_state, $form_id) { $display = ife_form_id_display($ife_options); $form['#ife_display'] = $display; - $form['#validate'][] = 'ife_form_validator'; + + if (strpos($form_id, 'commerce_checkout_form') !== FALSE) { + $form['buttons']['continue']['#validate'][] = 'ife_form_validator'; + } + else { + $form['#validate'][] = 'ife_form_validator'; + } } // webform support @@ -224,9 +230,17 @@ function ife_webform_recurse(&$form) { function ife_form_validator($form, &$form_state) { static $global_error_processed = FALSE; - $form_errors = form_get_errors(); + // Commerce checkout + if (strpos($form['#form_id'], 'commerce_checkout_form') !== FALSE) { + $form_errors = $form_state['storage']['errors']; + unset($form_state['storage']['messages']); + } + else { + $form_errors = form_get_errors(); + } + if (!empty($form_errors)) { - ife_element_errors_set($form, $form['#ife_display']); + ife_element_errors_set($form, $form['#ife_display'], $form_errors); if ($form['#ife_display'] == 1 && !$global_error_processed) { $message = filter_xss_admin(variable_get('ife_general_message', 'Please correct all highlighted errors and try again.')); @@ -258,7 +272,7 @@ function ife_errors($op = 'get', $id = NULL, $message = NULL) { } } -function ife_element_errors_set($element, $display) { +function ife_element_errors_set($element, $display, $errors) { if (!isset($_SESSION['messages'])) { return; } @@ -266,12 +280,11 @@ function ife_element_errors_set($element, $display) { // Recurse through all children. foreach (element_children($element) as $key) { if (isset($element[$key]) && $element[$key]) { - ife_element_errors_set($element[$key], $display); + ife_element_errors_set($element[$key], $display, $errors); } } // Check for errors and settings - $errors = form_get_errors(); $element_id = implode('][', $element['#parents']); if (!empty($errors[$element_id])) { $error_message = $errors[$element_id]; @@ -295,19 +308,6 @@ function ife_element_errors_set($element, $display) { } } -/** - * Implements hook_commerce_checkout_pane_info_alter(). - */ -function ife_commerce_checkout_pane_info_alter(&$panes) { - foreach ((array) $panes as $key => $pane) { - if (!isset($panes[$key]['callbacks'])) { - $panes[$key]['callbacks'] = array( - 'checkout_form_validate' => 'ife_form_validator', - ); - } - } -} - function ife_element_info_alter(&$types) { // List of form elements which are childs or don't have a need form inline errors $excluded_fields = array('radio', 'hidden', 'token', 'value');