Zum Inhalt springen

Snippets · WooCommerce

Ausverkaufte Produkte ans Ende sortieren

Kategorien, die mit nicht lieferbaren Artikeln beginnen, verschenken Umsatz. Dieses Snippet sortiert ausverkaufte Produkte im Shop, in Kategorien und Schlagwörtern ans Ende – die gewählte Sortierung bleibt sonst erhalten.

Worum es geht

Ausverkaufte Artikel ganz auszublenden kostet Suchmaschinen-Sichtbarkeit. Ganz vorn stehen sollen sie aber auch nicht.

So setzen Sie es ein

  1. Code einfügen und speichern.
  2. Eine Kategorie mit ausverkauften Artikeln aufrufen: Lieferbare stehen vorn, ausverkaufte am Ende.
  3. Die Sortierauswahl des Kunden (Preis, Neuheit, Beliebtheit) gilt weiter innerhalb beider Gruppen.

Was das Snippet nicht kann

  • Wirkt nicht in Shortcodes oder Blöcken mit eigener Produktabfrage.
  • Lieferbar auf Rückstand zählt als lieferbar.
  • Bei sehr großen Katalogen den Seiten-Cache nach dem Einbau leeren.

Vor dem Einbau

Testen Sie Snippets zuerst in einer Testumgebung und legen Sie eine Datensicherung an. Code ohne Gewähr.

Kopieren und einfügen

functions.php (Child-Theme) oder Snippet-Plugin
/**
 * MEK7 Snippet: Ausverkaufte Produkte ans Ende der Produktlisten sortieren
 * Gilt für Shop-Seite, Kategorien und Schlagwörter. Die gewählte Sortierung bleibt innerhalb der Gruppen erhalten.
 */
add_filter( 'posts_clauses', 'mek7_ausverkauft_ans_ende', 20, 2 );

function mek7_ausverkauft_ans_ende( $clauses, $query ) {
	if ( is_admin() || ! $query->is_main_query() ) {
		return $clauses;
	}
	$produktliste = $query->is_post_type_archive( 'product' ) || $query->is_tax( get_object_taxonomies( 'product' ) );
	if ( ! $produktliste ) {
		return $clauses;
	}
	global $wpdb;
	$clauses['join'] .= " LEFT JOIN {$wpdb->postmeta} AS mek7_lager ON ( {$wpdb->posts}.ID = mek7_lager.post_id AND mek7_lager.meta_key = '_stock_status' ) ";
	$vorne = " ( mek7_lager.meta_value = 'outofstock' ) ASC ";
	$clauses['orderby'] = $clauses['orderby'] ? $vorne . ', ' . $clauses['orderby'] : $vorne;
	return $clauses;
}

Keine Zeit für Code?

Wir bauen das Snippet in Ihren Shop ein und testen es – zum Festpreis, sicher vor Theme-Updates im Child-Theme oder Snippet-Plugin.

Featured Grid

Angebots-Raster für die Startseite, das Ausverkauftes automatisch ausblendet und die Reihenfolge täglich wechselt.

Zum Plugin