Heim >Backend-Entwicklung >PHP-Tutorial >Wie kann ich WooCommerce-Produktkäufe basierend auf früheren Käufen einschränken?
In WooCommerce muss Benutzern der Kauf bestimmter Produkte verwehrt werden (z. B. „c“, „ d“, „e“), es sei denn, sie haben zuvor bestimmte „Gatekeeper“-Produkte erworben (z. B. „a“, „b“).
Durch die Implementierung einer bedingten Funktion können Sie feststellen, ob ein Benutzer in der Vergangenheit die erforderlichen „Gatekeeper“-Produkte gekauft hat. Hier ist der Code, um dies zu erreichen:
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; }
Verwendung:
$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 }
Durch die Anwendung dieses Codes schränken Sie den Zugriff auf bestimmte Produkte basierend auf vorherigen Käufen effektiv ein, verbessern das Benutzererlebnis und stellen sicher, dass Kunden nur Zugriff auf relevante Produkte haben Artikel.
Das obige ist der detaillierte Inhalt vonWie kann ich WooCommerce-Produktkäufe basierend auf früheren Käufen einschränken?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!