В Ubercart как получить uid и order_id после того, как пользователь создан и связан с заказом - PullRequest
1 голос
/ 12 сентября 2011

Я видел похожие вопросы, такие как drupal :: заказ завершен, зацепите и обновите права / роли пользователя , которые будут работать для меня, за исключением того, что мой заказ никогда не достигает выполненного, только payment_received.В настоящее время uid равен 0. Это все еще не работает, если я добавляю условное действие в разделе «Клиент завершает оформление заказа», чтобы пометить статус как завершенный, поскольку uid все еще равен 0.

Так что мой вопрос,как получить идентификатор пользователя и объект заказа после того, как пользователь успешно завершил оформление заказа и был создан?

1 Ответ

0 голосов
/ 13 сентября 2011

Когда Ubercart создает пользователя, он также регистрирует его, так что вам просто нужно сделать это, чтобы получить uid:

global $user;
$uid = $user->uid;

Это, вероятно, лучше всего использовать в hook_order (), как упоминалось в похожем вопросе, на который вы ссылались.

UPDATE

Если с заказом не связано uid, вы можете получить что-то вроде этого:

function MYMODULE_order($op, &$order, $arg2) {
  if ($op == 'update' && $arg2 == 'payment_received') {
    if ($order->uid) {
      $uid = $order->uid;
    }
    else {
      global $user;
      $uid = $user->uid;
    }
  }
}
...