Задать вопрос
@DrOsd

Как сделать нумерацию заказов в drupal commerce не порядковым (1,2,3,4,....), а назначать номер заказа соответствующий дате unix timestamp?

Долго искал решение как сделать нумерацию заказов в drupal commerce не порядковым (1,2,3,4,....), а назначать номер заказа соответствующий дате unix timestamp.
Кто-то советовал сделать через rules но это оказалось для меня сложно.
Нашел решение как изменить схему нумерации через хук:
<?php
/**
 * Implements hook_commerce_order_presave().
 *
 * Alter order number.
 * $order does not need to be referenced since it is an object.
 */
function yourmodule_commerce_order_presave($order) {
  if (isset($order->order_id)) {
    // Alter order number by multplying the order id with 63.
    $order->order_number = sprintf('%08d', $order->order_id * 63);
  }
}
?>

Этот подход работает, но он умножает текущий номер на 63. Как его подправить так, чтобы номеру заказа присваивался timestamp?
  • Вопрос задан
  • 2998 просмотров
Подписаться 2 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 2
@ShVad
$order->order_number = time();
Ответ написан
Комментировать
@DrOsd Автор вопроса
Спасибо ) это работает..
Возможно кто-то знает, как таким же образом изменить не номер заказа а его ID? Я так догадываюсь, что нужно использовать другой хук.. И возможно ли вообще менять ID?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
22 дек. 2024, в 20:40
10000 руб./за проект
22 дек. 2024, в 20:34
3000 руб./за проект
22 дек. 2024, в 20:12
10000 руб./за проект