Submitted by andy on
/* * Implements hook_commerce_checkout_router() * Skip shipping page in checkout flow */ function MY_MODULE_commerce_checkout_router($order, $checkout_page) { if ($checkout_page['page_id'] == 'shipping') { //calculate shipping charge commerce_shipping_collect_rates($order); //update order status - @see commerce_checkout_form_submit $order = commerce_order_status_update($order, 'checkout_' . $checkout_page['next_page'], FALSE, TRUE, t('Shipping Page was skipped')); $form_state = array( 'order' => $order, 'checkout_page' => $checkout_page, 'rebuild' => FALSE, ); $form_state['build_info']['args'][0] = $order; $form_state['build_info']['args'][1] = $checkout_page; $form_state['values']['commerce_shipping']['shipping_rates'] = $order->shipping_rates; foreach ($order->shipping_rates as $key => $shipping_method) { if (empty($form_state['values']['commerce_shipping']['shipping_service'])) { $form_state['values']['commerce_shipping']['shipping_service'] = $key; } } $form = drupal_get_form('commerce_checkout_form_shipping', $order, $checkout_page); //run commerce_shipping_pane callback include validate and submit function commerce_checkout_form_validate($form, $form_state); drupal_goto('checkout/' . $order->order_id . '/' . $checkout_page['next_page']); } }
- Log in to post comments