현재 사용자 주문 InWooCommerce에서 주문 ID 가져오기
상황은 이렇습니다.저는 우커머스 사이트를 마켓플레이스로 사용하고 있습니다.게임을 판매하고 있는데, 구매자 중에 스팀 키를 받는 분들도 있어요.그래서 저는 키 속성 시스템을 연구하고 있기 때문에, 페이지에 들어가면 키는 사용자에게 속성이 될 것입니다.
그것을 위해 현재 사용자가 주문한 모든 것(로그인 및 페이지)을 확인하고 그가 구매한 게임을 확인하고 싶습니다.
여기서 매우 유용한 정보를 발견했습니다.WooCommerce 주문 세부 정보를 가져오는 방법
하지만 현재 사용자의 주문을 모두 받을 수는 없습니다.우선 SQL 요청을 해볼까 생각 중인데, 데이터베이스에서 주문과 사용자의 연결고리를 찾지 못합니다.
단서가 있습니까?
업데이트됨 WooCommerce 3+와의 호환성 추가 (2018년 1월)
모든 고객 주문을 받고 각 고객 주문의 각 항목을 수행하기 위해 필요한 코드는 다음과 같습니다.
## ==> Define HERE the statuses of that orders
$order_statuses = array('wc-on-hold', 'wc-processing', 'wc-completed');
## ==> Define HERE the customer ID
$customer_user_id = get_current_user_id(); // current user ID here for example
// Getting current customer orders
$customer_orders = wc_get_orders( array(
'meta_key' => '_customer_user',
'meta_value' => $customer_user_id,
'post_status' => $order_statuses,
'numberposts' => -1
) );
// Loop through each customer WC_Order objects
foreach($customer_orders as $order ){
// Order ID (added WooCommerce 3+ compatibility)
$order_id = method_exists( $order, 'get_id' ) ? $order->get_id() : $order->id;
// Iterating through current orders items
foreach($order->get_items() as $item_id => $item){
// The corresponding product ID (Added Compatibility with WC 3+)
$product_id = method_exists( $item, 'get_product_id' ) ? $item->get_product_id() : $item['product_id'];
// Order Item data (unprotected on Woocommerce 3)
if( method_exists( $item, 'get_data' ) ) {
$item_data = $item->get_data();
$subtotal = $item_data['subtotal'];
} else {
$subtotal = wc_get_order_item_meta( $item_id, '_line_subtotal', true );
}
// TEST: Some output
echo '<p>Subtotal: '.$subtotal.'</p><br>';
// Get a specific meta data
$item_color = method_exists( $item, 'get_meta' ) ? $item->get_meta('pa_color') : wc_get_order_item_meta( $item_id, 'pa_color', true );
// TEST: Some output
echo '<p>Color: '.$item_color.'</p><br>';
}
}
이 코드는 테스트를 거쳐 작동합니다.
관련:
- WooCommerce 주문 세부 정보를 가져오는 방법
- Woocmerce 3에서 Order Items 보호된 데이터에 액세스
- WC_Order_Item_Product in WoCommerce 3에서 주문품 및 WC_Order_Item_Product 가져오기
언급URL : https://stackoverflow.com/questions/42223765/get-the-order-id-from-the-current-user-orders-in-woocommerce
'programing' 카테고리의 다른 글
grails 컨트롤러에서 ajax 요청 또는 브라우저 요청 식별 (0) | 2023.11.06 |
---|---|
realloc은 실제로 배경에서 어떻게 작동합니까? (0) | 2023.11.06 |
제출 시 양식 리디렉션 또는 새로 고침을 방지하시겠습니까? (0) | 2023.11.06 |
클릭()에서 jQuery 클릭을 사용하여 앵커를 처리합니다. (0) | 2023.11.06 |
CSS의 모든 N번째 요소 선택 (0) | 2023.11.06 |