function commerce_coupon_handler_area_cart_form_submit in Commerce Coupon 7.2
Same name and namespace in other branches
- 7 includes/views/handlers/commerce_coupon_handler_area_cart_form.inc \commerce_coupon_handler_area_cart_form_submit()
Submit: function commerce_coupon_handler_area_cart_form
@todo Anyway to rollback redeeming a coupon if we find an error during redemption?
1 string reference to 'commerce_coupon_handler_area_cart_form_submit'
- commerce_coupon_handler_area_cart_form::views_form in includes/
views/ handlers/ commerce_coupon_handler_area_cart_form.inc
File
- includes/
views/ handlers/ commerce_coupon_handler_area_cart_form.inc, line 190 - Display a commerce coupon form field on the cart form.
Code
function commerce_coupon_handler_area_cart_form_submit($form, $form_state) {
// Get the values for the coupon form.
$coupon_parents = array_slice($form_state['triggering_element']['#parents'], 0, -1);
$coupon_values = drupal_array_get_nested_value($form_state['values'], $coupon_parents);
$coupon_code = $coupon_values['coupon_code'];
$order = $form_state['order'];
$error = '';
// Redeem the coupon.
$coupon = commerce_coupon_redeem_coupon_code($coupon_code, $order, $error);
$order = commerce_order_load($order->order_id);
// Error found during redeem.
if (!empty($error)) {
watchdog('commerce_coupon', 'An error occurred redeeming a coupon: @error', array(
'@error' => $error,
), WATCHDOG_ERROR);
drupal_set_message(t('Unable to redeem coupon.'), 'error');
commerce_coupon_remove_coupon_from_order($order, $coupon);
}
if ($coupon) {
// Allow modules/rules to act when a coupon has been successfully added
// to the cart.
rules_invoke_all('commerce_coupon_applied_to_cart', $coupon, $order);
}
}