Вы здесь

Как изменить страницу заказа admin/commerce/orders/1 ?

0

Каким образом можно изменить страницу заказа admin/commerce/orders/1
Например на ней не отображается e-mail покупателя указанный при оформлении заказа в "Информации об учётной записи".
Так же не показывается статус заказа.
Каким образом можно вытащить эти данные?
Гуглил, ничего не нашел.

Версия Drupal: 
7.x
Категория: 
Theming
Связанные проекты: 
Drupal Commerce
Вопрос задан 25.09.2015 - 10:48

Ответы

2

hook_entity_view
hook_entity_view_alter

Ответ дан 25.09.2015 - 11:03
Аватар пользователя xandeadx
xandeadx
1542

Спасибо. Но честно говоря не знаю что с этой информацией делать. Погуглю на эту тему.

Комментарий оставлен 25.09.2015 - 14:14

Нашел ровно такой же вопрос здесь.
Вот готовый код для вывода email и статуса заказа. Но у меня ничего не изменилось

<?php
/**
 * Implements hook_entity_view_alter().
 */
function YOURMODULE_entity_view_alter(&$build, $type) {
  switch ($type) {
    case 'commerce_order':
      if ($build['#view_mode'] === 'administrator') {
        $order = $build['#entity'];

        $build['status'] = array(
          '#type' => 'fieldset',
          '#title' => t('Order details'),
          '#weight' => -100,
        );

        $build['status']['markup'] = array(
          '#prefix' => '<dl>',
          '#suffix' => '</dl>',
          array('#markup' => sprintf('<dt>%s</dt><dd>%s<dd>', t('Status'), $order->status)),
          array('#markup' => sprintf('<dt>%s</dt><dd>%s<dd>', t('E-mail'), $order->mail)),
        );
      }
      break;
  }
}
?>

YOURMODULE естественно заменил на название своей темы.

Комментарий оставлен 25.09.2015 - 16:24

Вписал в основной теме, а нужно было в тему админки. Теперь работает.
В целом - решено.
Но статусы заказа на английском. Хотя переводы для них есть.

Комментарий оставлен 25.09.2015 - 18:55

В тему не запрещается добавлять. Кроме того я скопировал тему админки в sites/all/themes.
Как все-таки выводить статус заказа на русском языке?

Комментарий оставлен 26.09.2015 - 07:43

Перевел.
Обернуть $order_status функцией t не удалось по месту, поэтому перед выводом статуса заказа вписал такую строчку: $order_status = t($order->status);

Комментарий оставлен 28.09.2015 - 08:16