„Ähnliche Produkte“ („related products“) in WooCommerce deaktivieren

Das Shop-Plugin WooCommerce blendet in der Einzelansicht eines Produkts meistens weitere Produkte des Shops ein. „Ähnliche Produkte“ bzw. „related products“ nennt sich diese Funktion, die zu Zusatzkäufen verleiten soll oder dem Kunden Anregungen geben möchte auf der Suche nach einem geeigneten Artikel. Die Auswahl dieser manchmal nicht wirklich ähnlichen Produkte trifft WooCommerce selbstständig. Über die Einstellungen im Backend von WordPress lässt sich daran nichts ändern. Nicht einmal die Anzahl der angezeigten Produkte ist auswählbar. Und grundsätzlich abwählen lässt sich die Funktion auch nicht.

‚Programmierende‘ Handarbeit ist also gefragt, soll diese Funktion beeinflusst oder komplett ausgeblendet bzw. deaktiviert werden. Gründe hierfür gibt es genug. Zum Beispiel wird bei Shops mit kleinem Warenangebot häufig eine Auswahl angezeigt, die scheinbar rein nach dem Zufallsprinzip zustande gekommen ist – also wenig Nutzen bringt. Außerdem können diese Einblendungen von zusätzlichen Produktbildern und -daten den Aufbau der Seite verlangsamen. In Zeiten des Smartphones und der Anstrengungen Googles, das Netz „mobile friendly“ zu machen, macht es durchaus Sinn, Seiteninhalte auf das Nötige zu beschränken.

Unsinnig ist es daher, die ähnlichen Produkte einfach nur auszublenden. Eine CSS-Anweisung à la .related products { display:none; }, schnell mal eben in die style.css getippt, lässt die Anzeige zwar vom Bildschirm verschwinden, geladen wird sie im Hintergrund aber weiterhin. Es gibt deutlich bessere Möglichkeiten:

„Ähnliche Produkte“ per Filter deaktivieren

Die Macher von WooCommerce schlagen in ihrer Snippet-Sammlung vor, die Ausgabe der „related products“ mittels einer Filteranweisung zu unterbinden:

function wc_remove_related_products( $args ) {
	return array();
}
add_filter('woocommerce_related_products_args','wc_remove_related_products', 10); 

Diese wenigen Zeilen PHP-Code müssen in die functions.php des aktivierten Themes eingefügt werden. Hierdurch wird für die Shop-Funktion, die für die Auswahl von ähnlichen Produkten zuständig ist, komplett ausgefiltert, was eigentlich angezeigt werden sollte. Es werden also keine geeigneten Produkte (ein leeres Array) zurückgeliefert. Eine Bedingung innerhalb der zugrunde liegenden Funktionalität sorgt in solch einem Fall dafür, dass keine HTML-Ausgabe für die Darstellung erfolgt und daher der Bereich „Ähnliche Produkte“ nicht angezeigt wird.

„Ähnliche Produkte“ per Action entfernen

Es drängt sich die Frage auf, warum seitens der Entwickler von WooCommerce empfohlen wird, einen Filter anzuwenden, anstatt die zuständige Action mit dem Befehl remove_action() komplett zu entfernen. Möglich ist das durch folgende Anweisung innerhalb der functions.php:

remove_action( 'woocommerce_after_single_product_summary', 'woocommerce_output_related_products', 20);

Hierdurch wird die Action woocommerce_output_related_products aus dem übergeordneten Action-Hook entfernt, also gar nicht erst aufgerufen. Das Resultat sollte gleich sein. Denkbar ist allerdings, dass sich ein Plugin oder Theme hier in irgendeiner Weise angeklinkt hat. Dann könnten weitere Elemente ebenfalls nicht mehr angezeigt werden oder die Funktionalität in irgendeiner anderen Form beeinträchtigt sein. Spätestens dann macht es Sinn, obigen Filter von WooThemes zu nutzen.


Übrigens: Die Auswahl von WooCommerce, welche Produkte sich ähneln, hängt von der Zuordnung der Produkte zu Kategorien und der Vergabe von Produkt-Schlagwörtern ab. Gibt es hier eine Übereinstimmung, werden die Produkte vom Shopsystem als ähnlich bzw. related angesehen. Und andersherum: Solange keinem Produkt ein identisches Schlagwort zugewiesen wurde und sich in keiner Produktkategorie mehr als ein Produkt befindet, sollte die Anzeige von ähnlichen Produkten nicht erfolgen – aber das wird wohl in den seltensten Fällen eine Option sein.

Ein Kommentar zu “„Ähnliche Produkte“ („related products“) in WooCommerce deaktivieren

  1. Danke für den funktionierenden Rat! Habe das erstgenannte Snippet im der functions.php meines child-themes eingefügt.

    Thorsten

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.