So verstecken Sie ein Produkt in WooCommerce oder verstecken Produkte nach Kategorie oder Rolle

Veröffentlicht: 2020-02-24

Es gibt viele Möglichkeiten, ein bestimmtes Produkt in WooCommerce und in diesem Beitrag auszublenden; Wir werden jede dieser Möglichkeiten untersuchen, um ein Produkt in WooCommerce zu verstecken. Es gibt mehrere Gründe, warum Sie in Betracht ziehen sollten, ein Produkt aus dem WooCommerce-Shop zu verstecken, aber ganz oben auf der Liste steht, wenn das Produkt nicht vorrätig ist oder wenn das Produkt reserviert ist bestimmte Kunden oder Benutzerrollen.

WooCommerce-Produkt ausblenden

Wenn Sie vergriffene Produkte ausblenden möchten, sollten Sie zuerst in Betracht ziehen, das Etikett für vergriffene Produkte auf dem Produkt hinzuzufügen, anstatt das Produkt auszublenden.

Wenn Sie diese vergriffenen Produkte oder andere WooCommerce-Produkte dennoch ausblenden möchten, werde ich in diesem Beitrag mitteilen, wie Sie Produkte nach ID, Name oder Kategorie ausblenden können.

WooCommerce-Produkt mithilfe von Optionen ausblenden

WooCommerce verfügt standardmäßig über eine hervorragende Option, mit der Benutzer die Sichtbarkeit eines Produkts steuern können.

Sie können ein verstecktes Produkt in WooCommerce erstellen, indem Sie die Sichtbarkeitsoption steuern, bevor Sie das Bild veröffentlichen. Um das Produkt in WooCommerce mithilfe der Sichtbarkeit auszublenden, müssen Sie die folgenden Schritte ausführen:

  1. Melden Sie sich bei Ihrem WordPress-Site-Dashboard an
  2. Klicken Sie auf das Produktmenü, wie im Bild unten gezeigt, um auf das Produkt zuzugreifen, das Sie mithilfe einer Sichtbarkeitsoption vor Benutzern verbergen möchten. So verstecken Sie ein Produkt in Woocommerce
  3. Wählen Sie das Produkt aus der Liste aller Produkte aus, die Sie ausblenden möchten, wie unten gezeigt, und klicken Sie auf Bearbeiten, um auf den Bildschirm zur Produktbearbeitung zuzugreifen: So verstecken Sie ein Produkt in Woocommerce
  4. Im Produktbearbeitungsbildschirm auf der rechten Seite unter der Veröffentlichungs-Metabox unten gibt es eine Option namens „Sichtbarkeit des Katalogs“. Klicken Sie auf diesen Link und ein Dropdown-Menü mit Optionen wird angezeigt und die letzte Option ist „Ausgeblendet“.
    Wenn Sie diese Radiooption aktivieren und auf OK klicken und dann den Beitrag aktualisieren, wird das Produkt aus dem Shop-Katalog ausgeblendet. Wie in diesen drei Schritten (1,2,3) dargestellt: So verstecken Sie ein Produkt in Woocommerce
  5. Wenn Sie diese Option speichern und den Beitrag aktualisieren, wird die Produktsichtbarkeit ausgeblendet, wie Sie im Frontend des Shops sehen können: So verstecken Sie ein Produkt in Woocommerce
  6. Wenn Sie die Katalogsichtbarkeitsoption im Backend auf dem Produktbearbeitungsbildschirm aktivieren, sollten Sie sehen, dass sie bei der Aktualisierung des Beitrags auf „ausgeblendet“ aktualisiert wurde: So verstecken Sie Produkte in Woocommerce

Dies ist der schnellste Weg, ein WooCommerce-Produkt aus dem Shop-Katalog auszublenden. Es gibt andere Möglichkeiten, die Sie verwenden können, wie das Hinzufügen von Code zum untergeordneten Thema. Lassen Sie uns weitere Optionen untersuchen, mit denen Sie Produkte in WooCommerce ausblenden können.

Woocommerce Ausblenden bestimmter Kategorieprodukte von der Shop-Seite

Wenn Sie bestimmte Produkte von der Shop-Seite in WooCommerce ausblenden möchten, können Sie dies mit einem Aktionshaken erreichen, der auf die Abfrage der Shop-Seite „woocommerce_product_query“ abzielt.

Die Rückruffunktion sollte die $tax_query verwenden, um die Begriffe einzugrenzen, die mit dem Produkt verknüpft sind, das Sie ausblenden möchten.

In diesem Fall entspricht der Begriffsschlüssel im $tax_query-Array der Kategorie/dem Tag, wie ich in dem Beitrag erklärt habe, wie man die aktuelle WooCommerce-Produktkategorie erhält.

Angenommen, wir möchten dieses Produkt aus der Kategorie „Autoteile“ ausblenden.

Woocommerce-Produkt verstecken

Wir können das folgende Code-Snippet verwenden, das der Datei functions.php hinzugefügt wurde, um das Produkt auf der Shop-Seite zu verbergen:

 /**
 * Blende das WooCommerce-Produkt nach Kategorie auf der Shop-Seite aus.
 *
 * @param $q
 */
 

add_action( 'woocommerce_product_query', 'njengah_hide_product_by_category_shop_page' ); 

Funktion njengah_hide_product_by_category_shop_page( $q ) {

    $tax_query = (array) $q->get( 'tax_query' );

    $tax_query[] = array(
           'taxonomy' => 'product_cat',
           'Feld' => 'Schnecke',
           'terms' => array( 'uncategorised','auto-parts'), // Keine Produkte in der Kategorie 'Autoteile' auf der Shop-Seite anzeigen.
           'operator' => 'NICHT IN'
    );


    $q->set( 'Steuerabfrage', $Steuerabfrage );

}

Fügen Sie diesen Code zu den Themenfunktionen hinzu und Sie können die Kategorie „Autoteile“ durch jede andere Kategorie ersetzen, in der Sie Produkte ausblenden möchten, und dies wird die Produkte dieser Kategorie auf der Shop-Seite effektiv ausblenden, wie unten gezeigt:

Woocommerce-Produkt verstecken

WooCommerce Produkte ausblenden, wenn Sie nicht angemeldet sind

Eine weitere gängige Methode zum Ausblenden von Produkten in WooCommerce ist die Einschränkung der Produktsichtbarkeit basierend auf dem Status des Benutzers, ob er angemeldet oder nicht angemeldet ist.

Der erste Schritt besteht natürlich darin, zu überprüfen, ob der Benutzer angemeldet ist. Ich habe hier ausführlich erklärt – wie man überprüft, ob der Benutzer in WordPress angemeldet ist.

Wir werden diesen Code verwenden, um den Anmeldestatus zu überprüfen, und ihn dann mit der Abfrage kombinieren, um WooCommerce-Produkte abhängig vom Anmeldestatus des Benutzers bedingt auszublenden.

Der Code sollte wie folgt lauten:

 **
 * WooCommerce-Produkt ausblenden, wenn der Benutzer nicht angemeldet ist 
 *
 * @param $abfrage
 */
 

Funktion njengah_hide_product_if_user_not_logged( $query ) {
	
	
    if ( $query->is_main_query() && is_woocommerce() && !is_user_logged_in() ) {
		
        $tax_query = array(
            Reihe (
                    'taxonomy' => 'product_cat',
                    'Feld' => 'Schnecke',
                    'terms' => array( 'uncategorised','auto-parts'), // Keine Produkte in der Kategorie 'Autoteile' auf der Shop-Seite anzeigen.
                    'operator'=> 'NOT IN' // ausschließen
                )
            );

        $query->set('tax_query', $tax_query);
    }
}

add_action( 'pre_get_posts', 'njengah_hide_product_if_user_not_logged' );

Wie Sie sehen, prüfen wir bedingt, ob der Benutzer mit der Funktion is_user_logged_in() angemeldet ist, bevor wir mit der Abfrage fortfahren können.

Woocommerce Produkte nach Benutzerrollen ausblenden

Sie können die Produkte auch nach Benutzerrollen ausblenden. Sie müssen zuerst den aktuell angemeldeten Benutzer und seine Benutzerrolle abrufen, wie ich im vorherigen Tutorial zum Abrufen der aktuellen Benutzerrolle in WordPress beschrieben habe . Dieser Code zum Abrufen der Benutzerrolle lautet einfach wie folgt:

 $user = wp_get_current_user(); // Abrufen und Einstellen des aktuellen Benutzers

        $rollen = ( array ) $user->rollen; // Erhalt der Rolle

        $roles[0] //aktuelle Benutzerrolle

Wir sollten diesen Code mit der vorherigen pre_get_posts-Aktion kombinieren und der Code, der das Produkt für alle Benutzer versteckt, die der Administrator erwarten, lautet wie folgt:

 /**
 * WooCommerce-Produkt nach Benutzerrolle ausblenden, da in diesem Fall nur der Administrator dieses Produkt sehen kann 
 *
 * @param $abfrage
 */


Funktion njengah_hide_product_by_user_role( $query ) {
	
	 $user = wp_get_current_user(); // Abrufen und Einstellen des aktuellen Benutzers 
	 $rollen = ( array ) $user->rollen; // Erhalt der Rolle 
	
	
    if ( $query->is_main_query() && is_woocommerce() && $roles[0] != 'administrator' ) {
		
        $tax_query = array(
            Reihe (
                    'taxonomy' => 'product_cat',
                    'Feld' => 'Schnecke',
                    'terms' => array( 'uncategorised','auto-parts'), // Keine Produkte in der Kategorie 'Autoteile' auf der Shop-Seite anzeigen.
                    'operator'=> 'NOT IN' // ausschließen
                )
            );

        $query->set('tax_query', $tax_query);
    }
}

add_action( 'pre_get_posts', 'njengah_hide_product_by_user_role' );

Wie Sie in dieser Codezeile sehen können, in der wir die Abfrage bedingt prüfen, habe ich die Bedingung eingeführt, um zu prüfen, ob die Benutzerrolle nicht admin ist – $roles[0] != 'administrator', dann fahren wir mit der Abfrage fort. So blenden Sie WooCommerce-Produkte basierend auf der Benutzerrolle aus.

Sie können dieses Beispiel an Ihre spezifischen Bedürfnisse anpassen und Sie können auch alle diese Fälle kombinieren, um eine bedingte Möglichkeit zum Verbergen von WooCommerce-Produkten zu schaffen.

Abschließende Gedanken

In diesem Beitrag haben wir die drei gängigen Möglichkeiten zum Ausblenden von WooCommerce-Produkten hervorgehoben, darunter das Ausblenden nach Benutzerrolle, das Ausblenden von Produkten, wenn der Benutzer nicht angemeldet ist, und das Ausblenden der WooCommerce-Produkte ohne eine dieser Bedingungen. Wir haben auch die einfachste Möglichkeit zum Ausblenden von WooCommerce-Produkten mithilfe der Katalogsichtbarkeitsoption beschrieben, die im Produktbearbeitungsbildschirm bereitgestellt wird. Ich hoffe, Sie können jetzt einfach eine dieser Lösungen implementieren, um WooCommerce-Produkte in Ihrem Geschäft zu verbergen.