Drupal → Заменить сообщение о завершении заказа на свой .tpl.php файл

10.12.2015

Два способа заменить сообщение о завершении заказа на свой .tpl.php файл.

Способ 1

Будет работать только из своего модуля.

MODULENAME.module:

/**
 * Implements hook_theme().
 */
function MODULENAME_theme() {
  return array(
    'commerce_checkout_completion_message' => array(
      'template' => 'commerce-checkout-completion-message',
      'variables' => array(
        'order' => NULL,
      ),
    ),
  );
}

/**
 * Implements hook_commerce_checkout_pane_info_alter().
 */
function MODULENAME_commerce_checkout_pane_info_alter(&$checkout_panes) {
  $checkout_panes['checkout_completion_message']['callbacks']['checkout_form'] = 'MODULENAME_completion_message_callback';
}

/**
 * Checkout complete message callback.
 */
function MODULENAME_completion_message_callback($form, &$form_state, $checkout_pane, $order) {
  return array(
    'message' => array(
      '#theme' => 'commerce_checkout_completion_message',
      '#order' => $order,
    ),
  );
}

commerce-checkout-completion-message.tpl.php:

Order #<?php echo $order->order_id; ?> completed.

Способ 2

Будет работать и из модуля и из темы.

template.php:

/**
 * Implements hook_theme().
 */
function THEMENAME_theme() {
  return array(
    'commerce_checkout_completion_message' => array(
      'template' => 'templates/commerce-checkout-completion-message',
      'variables' => array(
        'order' => NULL,
        'message' => NULL,
      ),
    ),
  );
}

/**
 * Implements hook_form_FORM_ID_alter(): commerce_checkout_form_complete.
 */
function THEMENAME_form_commerce_checkout_form_complete_alter(&$form, &$form_state) {
  $form['checkout_completion_message']['message'] = array(
    '#theme' => 'commerce_checkout_completion_message',
    '#order' => $form_state['order'],
    '#message' => $form['checkout_completion_message']['message']['#markup'],
  );
}

templates/commerce-checkout-completion-message.tpl.php:

<?php echo $message; ?>
Написанное актуально для
Commerce 1
Похожие записи

Добавить комментарий