我见过类似drupal :: order complete hook and upgrade user permission/roles这样的问题,除了我的订单永远不会完成,只有pay_received,这对我有用。此时uid为0.如果我在“Customer complete checkout”下添加条件操作以将状态标记为完成,则uid仍为0时,它仍然无效。
所以我的问题是,在用户成功完成结账并创建后,如何获取uid和订单对象?
答案 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;
}
}
}