Zeigen Sie nur Produkte basierend auf der Benutzerrolle des Autors im Frontend in WooCommerce an

Lesezeit: 1 Minute

Benutzer-Avatar
Gorvie

Ich habe einen Anbieter-Marktplatz. Ich möchte nur Produkte anzeigen, die von einer bestimmten Autor-Benutzer-Rolle (Vendor) erstellt wurden.

Zur Verdeutlichung: Ich versuche nicht zu ändern, welche Benutzerrolle was sieht. Es wird nur versucht, Produkte anzuzeigen, die vom Anbieter erstellt wurden.

Ich habe festgestellt, dass Produkte ausblenden nur bestimmten Benutzerrollen im Woocommerce-Antwortcode zugewiesene Produkte anzeigen

Aber welchen Teil des Codes würde ich ändern, um die Benutzerrolle „Autor“ hinzuzufügen? Irgendein Rat?

  • Das aktuelle Beispiel ist die Verwendung von Produkt-Tags zum Filtern von Produkten. Erstellen Sie also ein Tag mit dem gleichen Namen wie die Rolle. Um alle Rollen zu finden, können Sie globale $wp_roles verwenden; $all_roles = $wp_roles->roles; und $all_roles ausgeben, um sie zu sehen.

    – Martin Mirchev

    17. Mai um 13:05 Uhr


Benutzer-Avatar
7uc1f3r

Um nur Produkte anzuzeigen, die auf Benutzerrollen basieren, können Sie die verwenden woocommerce_product_query Aktionshaken

In meiner Antwort verwende ich die get_users() WordPress-Funktion, um eine Liste von Benutzern abzurufen, die bestimmten Kriterien entsprechen.

Sobald alle IDs, die zu Benutzerrollen gehören, erhalten wurden, können wir verwenden author__in um Beiträge anzuzeigen, die mit bestimmten Autoren verknüpft sind

Sie erhalten also:

// Change the shop query
function action_woocommerce_product_query( $q, $query ) {
    // NOT on backend
    if ( is_admin() ) return;

    // Get IDs belonging to certain user roles - multiple roles can be added, separated by a comma
    $ids = get_users( array( 'role__in' => array( 'subscriber', 'administrator', 'vendor' ), 'fields' => 'ID' ) );
    
    // Show posts associated with certain author - use author id
    $q->set( 'author__in', $ids );
}
add_action( 'woocommerce_product_query', 'action_woocommerce_product_query', 10, 2 );

1017790cookie-checkZeigen Sie nur Produkte basierend auf der Benutzerrolle des Autors im Frontend in WooCommerce an

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy