Как создать дополнительную страницу в оформлении заказа в Drupal Commerce

Для начала имплементируем хук hook_commerce_checkout_page_info, в нем нам необходимо добавить информацию о создаваемой странице. Список возможных свойств страницы:

  • page_id - машинное имя страницы, допускается использование строчных букв и цифр, а так же символов "-", "_"
  • title - название страницы, используемое при оформлении заказа
  • name - переводимое название страницы, используемое в административных страницах, а так же соответствует статусу заказа на данной странице, если не указано, то по умолчанию используется название страницы
  • help - переводимый текст, который будет показан как помощь в div.checkout-help в верху данной страницы при оформлении заказа
  • weight - целое число, определяющее вес страницы, если не указано, заполняется автоматически
  • status_cart - логическое значение, указывающее, будет ли заказ иметь статус "в корзине" на данной странице; по умолчанию TRUE
  • buttons - логическое значение, указывающее, будут ли показаны кнопки для перехода к следующей или предыдущей странице при оформлении заказа; по умолчанию TRUE
  • back_value - переводимое значение кнопки, используемое для возврата к предыдущей странице заказа; по умолчанию "Back"
  • submit_value - переводимое значение кнопки, используемое для перехода к следующей странице заказа; по умолчанию "Continue"
  • prev_page - page_id предыдущей странице в процессе оформления заказа, не должна устанавливаться ​​при помощи хука, будет заполняться автоматически при загрузке страницы
  • next_page - page_id следующей странице в процессе оформления заказа, не должна устанавливаться ​​при помощи хука, будет заполняться автоматически при загрузке страницы

И так, создаем страницу:

/**
 * Implements hook_commerce_checkout_page_info()
 */
function moduleName_commerce_checkout_page_info() {
  $checkout_pages = array();

  $checkout_pages['moduleName'] = array(
    'name' => t('Custom page name'), 
    'title' => t('Custom page title'), 
    'weight' => 50, 
  );

  return $checkout_pages;
}
Benya