You are here

commerce_extra_login_page.module in Commerce Extra 7

Has all pages and panes for checkout tube.

File

modules/login_page/commerce_extra_login_page.module
View source
<?php

/**
 * @file
 *   Has all pages and panes for checkout tube.
 */

/**
 * Implements hook_commerce_checkout_page_info().
 */
function commerce_extra_login_page_commerce_checkout_page_info() {
  return array(
    'login' => array(
      'title' => t('Login'),
      'weight' => -10,
      'buttons' => TRUE,
    ),
  );
}

/**
 * Implements hook_commerce_checkout_pane_info().
 */
function commerce_extra_login_page_commerce_checkout_pane_info() {
  return array(
    'login_pane' => array(
      'title' => t('I\'m a registered user'),
      'name' => t('Registered user'),
      'page' => 'login',
      'review' => FALSE,
      'base' => 'commerce_extra_login_page_login_pane',
      'file' => 'commerce_extra_login_page.panes.inc',
      'weight' => -10,
    ),
    'continue_pane' => array(
      'title' => t('I\'m not a registered user'),
      'name' => t('Non-registered user'),
      'page' => 'login',
      'review' => FALSE,
      'base' => 'commerce_extra_login_page_continue_pane',
      'file' => 'commerce_extra_login_page.panes.inc',
      'weight' => 0,
    ),
  );
}

/**
 * Implements hook_commerce_checkout_router().
 * Make sure that logged in users gets skipped in login page.
 */
function commerce_extra_login_page_commerce_checkout_router($order, $checkout_page) {
  global $user;
  if ($user->uid && $checkout_page['page_id'] == 'login') {

    // Update the order status to reflect the next checkout page.
    $order = commerce_order_status_update($order, 'checkout_' . $checkout_page['next_page'], FALSE, TRUE, t('Customer was redirected to next page since (s)he was already logged in.'));
    drupal_goto('checkout/' . $order->order_id . '/' . $checkout_page['next_page']);
  }
}