ホームページ >バックエンド開発 >PHPチュートリアル >以前の購入に基づいて WooCommerce 製品の購入を制限するにはどうすればよいですか?
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 中国語 Web サイトの他の関連記事を参照してください。