Woocommerce의 주문 ID에서 제품 ID 가져 오기
2 대답
- 투표
-
- 2013-04-25
WooCommerce 3.0 이상
주문 항목은 다음을 통해 얻을 수 있습니다.
$order = wc_get_order( $order_id ); $items = $order->get_items();
그런 다음 항목을 반복하면 모든 관련 데이터를 얻을 수 있습니다.
foreach ( $items as $item ) { $product_name = $item->get_name(); $product_id = $item->get_product_id(); $product_variation_id = $item->get_variation_id(); }
좋은 팁은 관리자 주문 페이지에서 데이터를 얻는 방법을 확인하는 것입니다. 여기에서 많은 답변을 찾을 수 있습니다.
Pre-WooCommerce 3.0
$order = new WC_Order( $order_id ); $items = $order->get_items(); foreach ( $items as $item ) { $product_name = $item['name']; $product_id = $item['product_id']; $product_variation_id = $item['variation_id']; }
WooCommerce 3.0+
you can get the order items of an order by
$order = wc_get_order( $order_id ); $items = $order->get_items();
then if you loop through the items, you can get all the relevant data:
foreach ( $items as $item ) { $product_name = $item->get_name(); $product_id = $item->get_product_id(); $product_variation_id = $item->get_variation_id(); }
a good tip is to check how the admin order pages get the data, you'll find many answers there!
Pre-WooCommerce 3.0
$order = new WC_Order( $order_id ); $items = $order->get_items(); foreach ( $items as $item ) { $product_name = $item['name']; $product_id = $item['product_id']; $product_variation_id = $item['variation_id']; }
-
내가 뭔가 빠뜨리지 않는 한,이것은 최신 버전의 WooCommerce에서 작동하지 않는 것 같습니다.Unless I'm missing something, this doesn't appear to work in the latest version of WooCommerce...
- 0
- 2015-11-09
- rnevius
-
여전히 나를 위해 WooCommerce 2.4.8에서 작동하지만 $ order_id 변수를 정의해야합니다 (때로는 컨텍스트에 따라 $ order->id에 있음).Still works in WooCommerce 2.4.8 for me, but you need to have the $order_id variable defined (sometimes it's in $order->id, depending on your context).
- 0
- 2015-11-10
- Ewout
-
@mevius 나는 여러 제품을 확인하는 디스패치 기능으로 3+에 대한 편집을 추가했습니다.@mevius i added an edit for 3+ with a dispatch function for checking multiple products
- 0
- 2017-10-20
- Garet Claborn
-
디스패처에 대한 편집 기록을 참조하십시오. 서버가 무의미하게 소모되므로 이것이 없으면 좋지 않습니다.see edit history for dispatcher, this is not good without it as it will eat up your server pointlessly
- 0
- 2017-11-22
- Garet Claborn
-
이 데이터로 무엇을하는지에 전적으로 의존하는 @GaretClaborn.'있는 그대로',이 예제 스 니펫은 어떤 식 으로든 메모리를 낭비하지 않습니다.@GaretClaborn that depends entirely on what you're doing with this data. 'as is', this example snippet is not wasteful of memory in any way.
- 0
- 2017-11-27
- Ewout
-
여러 제품을 확인하는 경우 루프의 첫 번째 실행을 활용할 수있는 것과 비교하여 상당히 많은 논리를 반복합니다.If you are checking multiple products then you're repeating quite a bit of logic vs being able to capitalize on the first run of the loop
- 0
- 2017-12-19
- Garet Claborn
-
- 2013-04-25
작업을해서 무언가를 얻었습니다.다른 개발자와 공유하고 싶습니다.이것은 선호하는 방법은 아니지만 지식을 위해 내 답변을 게시하고 있습니다.
global $wpdb; $result = $wpdb->get_results('select t1.order_item_id, t2.* FROM wp_woocommerce_order_items as t1 JOIN wp_woocommerce_order_itemmeta as t2 ON t1.order_item_id = t2.order_item_id where t1.order_id='.$order->ID); echo '<pre>'; print_r($result); echo '</pre>';
희망은 누군가를 도울 것입니다.
추가 :
여러 웹 사이트 또는 마이그레이션 등의 문제를 방지하려면 워드 프레스 표 접두사를 사용하는 것이 좋습니다.
global $wpdb; $table_name = $wpdb->prefix . 'table_name';
I worked on it and achieved something. That I would like to share to other developers. This is not preferred way to do it, but for knowledge I am posting my answer.
global $wpdb; $result = $wpdb->get_results('select t1.order_item_id, t2.* FROM wp_woocommerce_order_items as t1 JOIN wp_woocommerce_order_itemmeta as t2 ON t1.order_item_id = t2.order_item_id where t1.order_id='.$order->ID); echo '<pre>'; print_r($result); echo '</pre>';
hope will help someone.
Additionally:
Better to use wordpress table prefix to avoid problems in multiple website or in migration etc.
global $wpdb; $table_name = $wpdb->prefix . 'table_name';
-
@ErenorPaz 감사합니다,귀하의 의견에 대한 답변으로 내용을 추가했습니다 :)@ErenorPaz Thanks, I added content in answer, in reply to your comment :)
- 1
- 2016-10-25
- arslaan ejaz
-
오래된 스레드에서도 빠른 응답에 감사드립니다!이전 댓글은 이제 오래되었으므로 삭제하겠습니다. :)Thank you for the fast response, even on an old thread! I'll delete my previous comments, since it's outdated now :)
- 0
- 2016-10-25
- Erenor Paz
Woocommerce 제품 세부 정보 및 주문 세부 정보 관계에 문제가 있습니다.Woocommerce 테마의 주문보기 페이지에서 관련 주문 ID의 제품 ID를 찾을 수 없습니다. 주문보기 페이지에서 제품 콘텐츠와 퍼머 링크 등을 얻고 싶습니다.
wp_postmeta
에서 검색을 시도했지만 운이 없었습니다.