문제:
고객이 다음을 구매했는지 확인해야 합니다. 이전에 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() && 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!