function uc_credit_form_uc_cart_checkout_review_form_alter in Ubercart 7.3
Same name and namespace in other branches
- 8.4 payment/uc_credit/uc_credit.module \uc_credit_form_uc_cart_checkout_review_form_alter()
Implements hook_form_FORM_ID_alter() for uc_cart_checkout_review_form().
File
- payment/
uc_credit/ uc_credit.module, line 153 - Defines the credit card payment method and hooks in payment gateways.
Code
function uc_credit_form_uc_cart_checkout_review_form_alter(&$form, &$form_state) {
// Check if the customer paid by CC and refreshed on the review page.
if (isset($_SESSION['cc_pay']) && !isset($_SESSION['sescrd']) && empty($_POST['sescrd'])) {
// Send them back to the checkout form to put in their details again.
drupal_set_message(t('To protect our customers from identity theft, credit card details are erased when a browser refreshes on the checkout review page. Please enter your card details again and re-submit the form.'), 'error');
$_SESSION['clear_cc'] = TRUE;
unset($_SESSION['cc_pay']);
drupal_goto('cart/checkout');
}
if (isset($_SESSION['sescrd'])) {
// Cache the CC details for use in other functions.
uc_credit_cache('save', $_SESSION['sescrd']);
// Store the encrypted details to the form for processing on submit.
$form['sescrd'] = array(
'#type' => 'hidden',
'#value' => base64_encode($_SESSION['sescrd']),
);
}
else {
$form['sescrd'] = array(
'#type' => 'hidden',
'#value' => '',
);
}
// Add submit handler to preserve CC details for the back button and
// failed order submissions.
$form['actions']['back']['#submit'][] = 'uc_credit_cart_review_back_submit';
// Reconstruct the submit handler array for before and after processing.
$submit = array_merge(array(
'uc_credit_cart_review_pre_form_submit',
), $form['#submit']);
$submit[] = 'uc_credit_cart_review_post_form_submit';
$form['#submit'] = $submit;
// Clear the session of the details.
unset($_SESSION['sescrd']);
}