> 백엔드 개발 > PHP 튜토리얼 > 고객이 WooCommerce에서 특정 제품을 구매했는지 어떻게 확인할 수 있나요?

고객이 WooCommerce에서 특정 제품을 구매했는지 어떻게 확인할 수 있나요?

Linda Hamilton
풀어 주다: 2024-11-14 13:22:02
원래의
581명이 탐색했습니다.

How Can I Determine if a Customer Has Purchased Specific Products in WooCommerce?

고객이 WooCommerce에서 특정 제품을 구매했는지 확인

문제:

고객이 다음을 구매했는지 확인해야 합니다. 이전에 WooCommerce에서 특정 제품(예: "a" 또는 "b")을 구매한 적이 있습니다. 이는 지정된 전제 조건을 충족하지 않는 한 다른 제품(예: "c", "d", "e")을 구매하는 능력을 제한하는 데 필요합니다.

해결책:

다음은 현재 고객이 제공된 제품 ID 배열에서 이전에 항목을 구매했는지 여부를 평가하는 사용자 정의 가능한 함수 has_bought_items()입니다.

코드:

function has_bought_items() {
    $bought = false;

    // Set the desired product IDs
    $prod_arr = array( '21', '67' );

    // Retrieve all customer orders
    $customer_orders = get_posts( array(
        'numberposts' => -1,
        'meta_key'    => '_customer_user',
        'meta_value'  => get_current_user_id(),
        'post_type'   => 'shop_order',
        'post_status' => 'wc-completed'
    ) );

    foreach ( $customer_orders as $customer_order ) {
        // Compatibility for WooCommerce 3+
        $order_id = method_exists( $order, 'get_id' ) ? $order->get_id() : $order->id;
        $order = wc_get_order( $order_id );

        // Iterate through customer purchases
        foreach ($order->get_items() as $item) {
            // Compatibility for WooCommerce 3+
            if ( version_compare( WC_VERSION, '3.0', '<' ) ) 
                $product_id = $item['product_id'];
            else
                $product_id = $item->get_product_id();

            // Check if any of the restricted products were purchased
            if ( in_array( $product_id, $prod_arr ) ) 
                $bought = true;
        }
    }

    // Return true if a restricted product has been purchased
    return $bought;
}
로그인 후 복사

사용법:

이 기능을 사용하려면 테마의 function.php 파일에 배치하고 필요에 따라 $prod_arr 배열을 수정하세요. 그런 다음 이를 WooCommerce 템플릿에 통합하여 고객의 구매 내역을 기반으로 장바구니에 추가 버튼을 조건부로 표시하거나 비활성화할 수 있습니다.

예를 들어 add-to-cart.php 템플릿에서 다음을 수행할 수 있습니다. 다음 코드를 사용하세요:

if ( !has_bought_items() &amp;&amp; in_array( $product_id, $restricted_products ) ) { 
    // Make add-to-cart button inactive (disabled styling)
    // Display explicit message if desired
} else { 
    // Display normal Add-To-Cart button
}
로그인 후 복사

위 내용은 고객이 WooCommerce에서 특정 제품을 구매했는지 어떻게 확인할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿