function commerce_payment_order_transaction_add_form_submit in Commerce Core 7
Submit callback for commerce_payment_order_transaction_add_form().
File
- modules/
payment/ includes/ commerce_payment.forms.inc, line 213 - Defines forms for creating and administering payment transactions.
Code
function commerce_payment_order_transaction_add_form_submit($form, &$form_state) {
// If the "Add payment" button was clicked...
if (end($form_state['triggering_element']['#array_parents']) == 'add_payment') {
// Store the payment method in the form state and rebuild the form.
$form_state['payment_method'] = commerce_payment_method_instance_load($form_state['values']['payment_method']);
$form_state['rebuild'] = TRUE;
}
else {
$payment_method = $form_state['payment_method'];
$order = $form_state['order'];
// Delegate submit to the payment method callback.
if ($callback = commerce_payment_method_callback($payment_method, 'submit_form_submit')) {
$charge = array(
'amount' => $form_state['values']['amount'],
'currency_code' => $form_state['values']['currency_code'],
);
$details_form = !empty($form['payment_terminal']['payment_details']) ? $form['payment_terminal']['payment_details'] : array();
$details_values = !empty($form_state['values']['payment_details']) ? $form_state['values']['payment_details'] : array();
$result = $callback($payment_method, $details_form, $details_values, $order, $charge);
if ($result === FALSE) {
$form_state['rebuild'] = TRUE;
}
else {
drupal_set_message(t('Payment transaction created.'));
}
}
}
}