You are here

function commerce_product_urls_commerce_cart_add_to_cart_form_submit in Commerce Product URLs 7

Extra form submit handler: replaces commerce_cart's form redirect to go back to the same product variation that was just added to the cart.

1 string reference to 'commerce_product_urls_commerce_cart_add_to_cart_form_submit'
commerce_product_urls_form_alter in ./commerce_product_urls.module
Implements hook_form_alter().

File

./commerce_product_urls.module, line 118
Implements unique URLs for particular products on product displays. See d.o. issue #1082596: http://drupal.org/node/1082596

Code

function commerce_product_urls_commerce_cart_add_to_cart_form_submit($form, &$form_state) {

  // Only if we are on node (product display) page.
  if (!empty(menu_get_object()->nid)) {

    // Only if there is more that 1 product assigned to current product display.
    $product_ids = _commerce_product_urls_get_product_ids_from_line_item($form_state['line_item']);
    if (count($product_ids) > 1) {

      // Default product data does not exist after form is built.
      // @see commerce_cart_add_to_cart_form_after_build.
      $form_state['default_product'] = commerce_product_load($form_state['values']['product_id']);
      $form_state['redirect'] = array(
        current_path(),
        array(
          'query' => _commerce_product_urls_build_query_string($form_state, TRUE),
        ),
      );
    }
  }
}