사용자가 구매한 모든 제품을 표시하는 방법 – 구매 내역
게시 됨: 2020-08-15 사용자가 구매한 제품을 표시하거나 특정 사용자의 모든 구매 내역을 표시하려면 이 게시물에서 공유된 코드를 사용하여 이를 달성할 수 있습니다. 이상적으로는 모든 고객 주문 또는 구매 내역이 WordPress 데이터베이스 wp_posts
의 게시물 테이블에 저장됩니다. 따라서 get_post().
예제를 사용하여 설명할 기능입니다.
사용자가 구매한 WooCommerce 디스플레이 제품
고객이 구매한 제품을 표시하는 첫 번째 단계 는 고객의 세부 정보를 가져와야 하며 현재 사용자의 개체를 반환하는 wp_get_current_user()
함수를 사용할 수 있습니다.
1단계: 고객 이력을 표시하고 사용자 세부 정보를 가져오는 함수 만들기
예를 들어 함수는 다음과 같이 현재 사용자 세부 정보를 가져옵니다.
기능 njengah_get_customer_purchase_history(){ // 현재 사용자 객체 가져오기 $current_user = wp_get_current_user(); // 사용자가 유효한지 확인 if ( 0 == $current_user->ID ) 반환; }
wp_get_current_user()
함수는 사용자 개체를 검색하고 대안으로 현재 사용자 ID 를 직접 검색하는 get_current_user_id()
와 같은 함수를 사용할 수 있습니다.
2단계: 완료 및 처리 중인 사용자 주문 가져오기
이 단계에서는 get_posts() 함수를 사용하고 첫 번째 단계에서 얻은 사용자 ID와 함께 args 를 전달해야 하며 이 경우 사용자 ID는 $args 의 meta_value 로 전달됩니다. 따라서 get_posts() 함수에 전달할 인수 배열을 만드는 것으로 시작합니다.
//$args 배열 생성 $args = 배열( '숫자 포스트' => -1, '메타_키' => '_고객_사용자', '메타_값' => $current_user->ID, 'post_type' => wc_get_order_types(), 'post_status' => array_keys( wc_get_is_paid_statuses() ), );
인수를 생성한 후 다음과 같이 $args 배열을 get_posts() 함수에 매개변수로 전달하지 않습니다.
$customer_orders = get_posts($args);
다음 단계로 이동하기 전에 1단계와 2단계의 코드를 결합 하고 결합된 코드는 다음과 같아야 합니다.
기능 njengah_get_customer_purchase_history(){ // 현재 사용자 객체 가져오기 $current_user = wp_get_current_user(); // 사용자가 유효한지 확인 if ( 0 == $current_user->ID ) 반환; //$args 배열 생성 $args = 배열( '숫자 포스트' => -1, '메타_키' => '_고객_사용자', '메타_값' => $current_user->ID, 'post_type' => wc_get_order_types(), 'post_status' => array_keys( wc_get_is_paid_statuses() ), ); // $args를 get_posts() 함수에 전달 $customer_orders = get_posts($args); }
이 단계에서는 이제 이전 고객의 모든 구매 내역을 다음 단계에서 제품 ID를 얻기 위해 반복할 배열 로 얻었습니다.
3단계: 고객 주문 및 반품 제품 ID 표시 준비 완료
이 단계에서는 이전 단계에서 얻은 주문을 반복하고 제품 ID가 있는 배열을 반환해야 합니다. foreach 루프를 사용하여 다음 코드를 사용하여 그렇게 할 수 있습니다.
// 주문을 반복하고 ID를 반환합니다. if ( ! $customer_orders ) 반환; $product_ids = 배열(); foreach( $customer_orders as $customer_order ) { $주문 = wc_get_order( $customer_order->ID ); $items = $order->get_items(); foreach ( $items 를 $item 으로 ) { $product_id = $item->get_product_id(); $product_ids[] = $product_id; } } $product_id 반환;
이제 1단계, 2단계 및 3단계의 코드를 결합하여 다음과 같은 완전한 코드를 만들 수 있습니다.
기능 njengah_get_customer_purchase_history(){ // 현재 사용자 객체 가져오기 $current_user = wp_get_current_user(); // 사용자가 유효한지 확인 if ( 0 == $current_user->ID ) 반환; //$args 배열 생성 $args = 배열( '숫자 포스트' => -1, '메타_키' => '_고객_사용자', '메타_값' => $current_user->ID, 'post_type' => wc_get_order_types(), 'post_status' => array_keys( wc_get_is_paid_statuses() ), ); // $args를 get_posts() 함수에 전달 $customer_orders = get_posts($args); // 주문을 반복하고 ID를 반환합니다. if ( ! $customer_orders ) 반환; $product_ids = 배열(); foreach( $customer_orders as $customer_order ) { $주문 = wc_get_order( $customer_order->ID ); $items = $order->get_items(); foreach ( $items 를 $item 으로 ) { $product_id = $item->get_product_id(); $product_ids[] = $product_id; } } $product_id 반환; }
4단계: 함수 반환 테스트
이 단계에서는 다음과 같이 print_r() 함수를 사용하여 3단계의 함수에서 데이터가 표시되는지 확인할 수 있습니다.
print_r(njengah_get_customer_purchase_history());
모든 단계를 올바른 방법으로 따랐다면 아래 이미지와 같이 데이터 표시를 wp_head action hook에 추가한 데이터가 표시되는 것을 볼 수 있을 것입니다.
이제 단축 코드 또는 테마 또는 플러그인 개발에서 이 데이터를 사용하여 원하는 곳 어디에서나 구매 내역을 표시할 수 있습니다.
결론
이번 포스트에서는 사용자가 구매한 상품을 WooCommerce에 표시하는 방법을 단계별로 설명했습니다. 이 코드의 이상적인 사용은 현재 주문 제품을 이전에 주문한 제품과 비교하려는 모든 논리에 있을 수 있습니다. 대부분의 실제 적용에는 이전 주문 또는 교차 판매 및 상향 판매를 기반으로 한 할인 할당이 포함됩니다.
유사한 기사
- WordPress 페이지 새로 고침 시 리디렉션하는 방법 » 페이지 새로 고침 PHP 감지
- 실용적인 예를 통해 WordPress에서 Slug로 게시물 ID를 얻는 방법
- WooCommerce에서 현재 제품 카테고리 이름을 얻는 방법
- WordPress에서 로그인한 사용자 정보를 얻는 방법
- WooCommerce에서 제품을 숨기거나 카테고리 또는 역할별로 제품을 숨기는 방법
- WordPress에 로그인하지 않은 경우 사용자를 리디렉션하는 방법 » 페이지 리디렉션
- 플러그인 없이 프로그래밍 방식으로 WordPress 관리 메뉴 항목을 제거하는 방법
- WooCommerce 고객 또는 사용자 역할별로 관리자 표시줄을 숨기는 방법
- 플러그인을 사용하지 않고 WordPress에서 번호 매기기를 만드는 방법
- Woocommerce에서 반품 링크를 변경하는 방법
- WooCommerce 확인 없이 로그아웃: "로그아웃하시겠습니까?"를 제거하는 방법
- WordPress 및 디스플레이 역할에서 현재 사용자 역할을 얻는 방법
- 플러그인 없이 WordPress 페이지를 리디렉션하는 방법은 무엇입니까?
- WordPress에서 플러그인이 활성화되어 있는지 확인하는 방법 [ 3 WAYS ]
- WordPress에 사이드바를 추가하는 방법 » 궁극적인 단계별 가이드
- 플러그인을 사용하지 않고 WordPress에 성공적으로 로그인한 후 사용자를 리디렉션하는 방법
- WordPress 테마에 사이드바를 등록하는 방법 » 단계별 [ 헤더 위젯 예 ]
- WooCommerce에 로그인한 후 장바구니로 리디렉션하는 방법
- 사용자가 WordPress에 로그인되어 있는지 확인하는 방법
- WooCommerce에서 재고 여부 텍스트를 표시하는 방법 » 재고 및 재고 없음