Heim >Backend-Entwicklung >PHP-Tutorial >Wie kann ich unbefugte Käufe bestimmter Produkte in WooCommerce verhindern, indem ich von Kunden den Nachweis eines vorherigen Kaufs verlange?
Problem:
Händler stehen vor der häufigen Herausforderung, unbefugte Käufe für bestimmte Zwecke zu verhindern Produkte. In diesem Fall müssen Kunden über einen vorherigen Kaufnachweis für die Produkte „a“ oder „b“ verfügen, um Zugang zu den Produkten „c“, „d“ und „e“ zu erhalten.
Lösung:
In diesem umfassenden Leitfaden statten wir Sie mit einer benutzerdefinierten Funktion aus, die ermittelt, ob ein Kunde erforderliche Produkte gekauft hat, bevor der Zugriff auf eingeschränkte Produkte aktiviert wird Artikel.
function has_bought_items() { $bought = false; // Replace the numbers with your specific target product IDs $prod_arr = array( '21', '67' ); // Gather all customer orders $customer_orders = get_posts( array( 'numberposts' => -1, 'meta_key' => '_customer_user', 'meta_value' => get_current_user_id(), 'post_type' => 'shop_order', // WooCommerce orders post type 'post_status' => 'wc-completed' // Only orders with "completed" status ) ); // Process each customer order foreach ( $customer_orders as $customer_order ) { // Handle WooCommerce version compatibility $order_id = method_exists( $order, 'get_id' ) ? $order->get_id() : $order->id; $order = wc_get_order( $customer_order ); // Iterate through products bought in the order foreach ($order->get_items() as $item) { // Product ID retrieval based on WooCommerce version if ( version_compare( WC_VERSION, '3.0', '<' ) ) $product_id = $item['product_id']; else $product_id = $item->get_product_id(); // Condition: Check if required product ID exists in the array of purchased products if ( in_array( $product_id, $prod_arr ) ) $bought = true; } } // Return true if the specific products have been purchased by the customer return $bought; }
Verwendung:
Implementieren Sie die Funktion in Ihren WooCommerce-Vorlagen, die Schaltflächen zum Hinzufügen von Produkten zum Warenkorb manipulieren, wie zum Beispiel:
Zum Beispiel in der Add-to-Cart-Button-Vorlage für die Shop-Seite (loop/add -to-cart.php):
// Replace numbers with restricted product IDs $restricted_products = array( '20', '32', '75' ); // WooCommerce compatibility adjustment $product_id = method_exists( $product, 'get_id' ) ? $product->get_id() : $product->id; // Restricted product, inactive add-to-cart button if ( !has_bought_items() && in_array( $product_id, $restricted_products ) ) { // Display an inactive add-to-cart button with a custom message // Non-restricted product or allowed product after specific purchase } else { // Regular add-to-cart button code }
In diesem Beispiel wird die Schaltfläche „In den Warenkorb“ für bestimmte Produkte dynamisch deaktiviert, bis der Kunde den vorherigen Kauf der erforderlichen Produkte nachgewiesen hat Artikel.
Das obige ist der detaillierte Inhalt vonWie kann ich unbefugte Käufe bestimmter Produkte in WooCommerce verhindern, indem ich von Kunden den Nachweis eines vorherigen Kaufs verlange?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!