在ubercart中,如何在创建用户并将其与订单关联后获取uid和order_id

时间:2011-09-12 18:01:37

标签: php drupal ubercart

我见过类似drupal :: order complete hook and upgrade user permission/roles这样的问题,除了我的订单永远不会完成,只有pay_received,这对我有用。此时uid为0.如果我在“Customer complete checkout”下添加条件操作以将状态标记为完成,则uid仍为0时,它仍然无效。

所以我的问题是,在用户成功完成结账并创建后,如何获取uid和订单对象?

1 个答案:

答案 0 :(得分:0)

当Ubercart创建用户时,它也会将其记录下来,因此您只需要执行此操作即可获取uid:

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

最好在hook_order()中提供,如您链接的类似问题所述。

<强>更新

如果没有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;
    }
  }
}