WooCommerce 내에서 주문이 완료된 후 호출 해야하는 기능을 만들고 있습니다. 이를 위해 * 'woocommerce_order_status_completed'* 후크를 사용하고 있습니다. 주문에 특정 제품 카테고리에 속하는 제품이 있는지 확인하고 싶습니다. 이 경우 사용자는 Wordpress 내의 그룹에 추가됩니다. 그룹 로직을 처리하기 위해 다른 플러그인의 API를 사용하고 있습니다. 이 메소드에는 * group_id * 및 * user_id *가 필요합니다. 내가 놓친 유일한 것은 * user_id *를 얻는 것입니다.
WooCommerce Order에서 사용자 (자세한 정보 : 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?
}
}
기술적 세부 사항:
워드 프레스 버전 : 3.8
WooCommerce 버전 : 2.1
WC_Order
클래스는get_user()
사용자 객체 또는false
손님get_user_id()
을 반환하고 손님 ID 또는 0을 손님에게 반환합니다. 더 이상 콜백에 대해 걱정할 필요가 없습니다.