Woocommerce의 주문 ID에서 제품 ID 가져 오기 [닫기]


38

Woocommerce 제품 정보 및 주문 정보 관계에 문제가 있습니다. Woocommerce 테마의 주문보기 페이지 에서 관련 주문 ID의 제품 ID를 찾을 수 없습니다 . 주문보기 페이지 에서 제품 내용과 퍼머 링크 등을 얻고 싶습니다 .

검색을 시도했지만 wp_postmeta운이 없었습니다.

답변:


68

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();
}

좋은 방법은 관리자 주문 페이지가 데이터를 얻는 방법을 확인하는 것입니다.

우우 커머스 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

여전히 WooCommerce 2.4.8에서 작동하지만 $ order_id 변수를 정의해야합니다 (때로는 상황에 따라 $ order-> id에 있음).
Ewout

@mevius 나는 여러 제품을 확인하기 위해 디스패치 기능을 3+에 대한 편집을 추가
Garet Claborn에게

디스패처에 대한 편집 기록을 참조하십시오. 서버를 무의미하게 먹기 때문에 이것이 없으면 좋지 않습니다
Garet Claborn

이 데이터로 무엇을하고 있는지에 전적으로 의존하는 @GaretClaborn. '있는 그대로',이 예제 스 니펫은 어떤 방식으로도 메모리를 낭비하지 않습니다.
Ewout

6

나는 그것에 노력하고 무언가를 달성했다. 다른 개발자들과 공유하고 싶습니다. 이것은 선호하는 방법은 아니지만 지식을 위해 답변을 게시하고 있습니다.

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'; 

1
@ErenorPaz 감사합니다, 나는 귀하의 의견에 답변하여 답변에 콘텐츠를 추가했습니다 :)
arslaan ejaz

오래된 스레드에서도 빠른 응답에 감사드립니다! 구식 주석은 이제 구식이기 때문에 삭제하겠습니다. :)
Erenor Paz
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.