我正在做一个在WooCommerce中完成订单后需要调用的函数。为此,我使用了*'woocommerce_order_status_completed'*挂钩。我想检查订单中是否有属于特定产品类别的产品。在这种情况下,用户将被添加到Wordpress中的组中。为了处理组逻辑,我使用了另一个插件的API。此方法需要* group_id *和* user_id *。我唯一缺少的是获取* user_id *。
如何从WooCommerce订单中获取用户(详细信息:id)?
码:
function isa_set_isa_member_group_after_order_completed($order_id) {
$order = new WC_Order( $order_id );
$items = $order->get_items();
foreach($items as $item) {
$product = $order->get_product_from_item($item);
$has_membership_product = has_term('Lidmaatschap','product_cat',$product->post);
if($has_membership_product) {
break;
}
}
$group = Groups_Group::read_by_name('ISA Leden');
if(!group) {
return; // TODO: Add error message + email?
}
$user_id = 0 // TODO: Get user id from order.
$user_group = array(
"user_id" => $user_id,
"group_id" => $group->group_id
);
$result = Groups_User_Group::create($user_group);
if(!result) {
return; // TODO: Add error message + email?
}
}
技术细节:
WordPress版本:3.8
WooCommerce版本:2.1
WC_Order
类附带了该类,该类get_user()
返回用户对象或false
来宾,get_user_id()
并且返回来宾的用户ID或零...如果您正在使用这些,则不再需要担心回调。