ฉันกำลังสร้างฟังก์ชั่นซึ่งจำเป็นต้องเรียกใช้หลังจากที่คำสั่งซื้อเสร็จสิ้นภายใน WooCommerce สำหรับสิ่งนี้ฉันใช้ * 'woocommerce_order_status_completed' * hook ฉันต้องการตรวจสอบว่าคำสั่งซื้อมีผลิตภัณฑ์ที่เป็นของหมวดหมู่ผลิตภัณฑ์เฉพาะหรือไม่ หากเป็นกรณีนี้ผู้ใช้จะถูกเพิ่มในกลุ่มภายใน Wordpress เพื่อจัดการตรรกะของกลุ่มฉันใช้ API ของปลั๊กอินอื่น วิธีนี้ต้องการ * group_id * และ * user_id * สิ่งเดียวที่ฉันหายไปคือการได้รับ * user_id *
ฉันจะรับผู้ใช้ (รายละเอียด: id) จากคำสั่งซื้อ WooCommerce ของฉันได้อย่างไร
รหัส:
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
คลาสWooCommerce มาพร้อมกับget_user()
ส่งคืนวัตถุผู้ใช้หรือfalse
แขกและget_user_id()
ส่งคืนรหัสผู้ใช้หรือศูนย์สำหรับแขก ... คุณไม่จำเป็นต้องกังวลเกี่ยวกับการโทรกลับหากคุณกำลังใช้