Kunden eine Liste ihrer bestellten Produkte anzeigen
Es geht um die Frage, wie Produkte mit einer individuellen Auswahl angezeigt werden.
WOOT ist ein flexibles Plugin, und wenn etwas nicht von Haus aus möglich ist, lässt es sich mit dem Hook 'woot_filter_provider_' lösen. Dieser Artikel beschreibt: „Kunden eine Bestellmöglichkeit bieten, indem ihnen eine Liste ihrer bereits bestellten Produkte angezeigt wird, sortiert nach Beliebtheit (wie oft der Kunde sie bestellt hat)“.
- Öffnen Sie die Datei functions.php des aktuellen WordPress-Themes (besser ein Child-Theme verwenden)
- Fügen Sie dort folgenden Code ein:
add_filter('woot_filter_provider_ordered_by_customer', function($args, $filter_data, $shortcode_args_set) { if (is_user_logged_in()) { // GET CURRENT USER $current_user = wp_get_current_user(); if (0 == $current_user->ID) { return $args; } // GET USER ORDERS (COMPLETED + PROCESSING) $customer_orders = get_posts(array( 'numberposts' => -1, 'meta_key' => '_customer_user', 'meta_value' => $current_user->ID, 'post_type' => wc_get_order_types(), 'post_status' => array_keys(wc_get_is_paid_statuses()), )); // LOOP THROUGH ORDERS AND GET PRODUCT IDS if (!$customer_orders) { $args['post__in'] = [-1]; return $args; } $product_ids = []; foreach ($customer_orders as $customer_order) { $order = wc_get_order($customer_order->ID); $items = $order->get_items(); foreach ($items as $item) { $product_ids[] = $item->get_product_id(); } } $args['post__in'] = array_unique($product_ids); } return $args; }, 10, 3); - Verwenden Sie auf der Seite bzw. an der Stelle, an der die vom aktuellen Benutzer gekauften Produkte erscheinen sollen, folgenden Shortcode: [woot filter_provider="ordered_by_customer" order_by='popularity'] – dabei ist der Wert von filter_provider eine frei wählbare Zeichenfolge und Teil des benutzerdefinierten Hooks 'woot_filter_provider_ordered_by_customer'
Mit dieser Logik kann der Seitenadministrator spezielle Funktionen für sich selbst schaffen, zum Beispiel eine eigene Seite, auf der sich die Produkte eines beliebigen Benutzers anhand seiner Benutzer-ID ansehen lassen.