在WooCommerce 中,必須限制使用者購買某些產品(例如「c」、「 d」、「e」),除非他們之前已經獲得了特定的「看門人」產品(例如「a」、「b」)。
透過實現條件函數,您可以確定使用者過去是否購買過所需的「看門人」產品。以下是實現此目的的代碼:
function has_bought_items() { $bought = false; $prod_arr = array( '21', '67' ); $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 ) { $order_id = method_exists( $order, 'get_id' ) ? $order->get_id() : $order->id; $order = wc_get_order( $customer_order ); foreach ($order->get_items() as $item) { if ( version_compare( WC_VERSION, '3.0', '<' ) ) $product_id = $item['product_id']; else $product_id = $item->get_product_id(); if ( in_array( $product_id, $prod_arr ) ) $bought = true; } } return $bought; }
用法:
$restricted_products = array( '20', '32', '75' ); $product_id = method_exists( $product, 'get_id' ) ? $product->get_id() : $product->id; if ( !has_bought_items() && in_array( $product_id, $restricted_products ) ) { // Display inactive add-to-cart button } else { // Display normal add-to-cart button }
透過應用此程式碼,您可以根據先前的購買情況有效限制對特定產品的訪問,從而增強用戶體驗並確保客戶擁有僅訪問相關項目。
以上是如何根據先前的購買限制 WooCommerce 產品購買?的詳細內容。更多資訊請關注PHP中文網其他相關文章!