Řazení produktů, které nejsou skladem na konec ve WooCommerce

WooCommerce umožňuje nastavit několik tipů řazení produktů v kategoriích (katalogu) e-shopu. V případě, že chcete na svém e-shopu mít zobrazeny i produkty, které momentálně nemáte skladem, ale zároveň chcete upřednostnit ty, které skladem máte, můžete vložit jednoduchou funkci, která vám produkty, které nejsou skladem automaticky zařádí na konec.

Kontrola nastavení skladu ve WooCommerce

Nezáleží, jestli máte zapnutou možnost Povolit řízení skladových zásob, nebo ne. Důležité je mít vypnutou funkci Skrýt položky v katalogu, které nejsou na skladě.

Vložení kódu (snippetu) do functions.php

V administraci WordPressu zvolíte Vzhled -> Editor souboru šablony a otevřete soubor Funkce šablony (functions.php). Ideální je, pokud máte nainstalovanou a aktivní child šablonu a kód vkládáte přímo do jejího souboru functions.php.

add_filter('posts_clauses', 'order_by_stock_status', 999);
function order_by_stock_status($posts_clauses) {
    global $wpdb;
    // only change query on WooCommerce loops
    if (is_woocommerce() && (is_shop() || is_product_category() || is_product_tag() || is_product_taxonomy())) {
        $posts_clauses['join'] .= " INNER JOIN $wpdb->postmeta istockstatus ON ($wpdb->posts.ID = istockstatus.post_id) ";
        $posts_clauses['orderby'] = " istockstatus.meta_value ASC, " . $posts_clauses['orderby'];
        $posts_clauses['where'] = " AND istockstatus.meta_key = '_stock_status' AND istockstatus.meta_value <> '' " . $posts_clauses['where'];
    }
    return $posts_clauses;
}
Ukázka vložené funkce v souboru functions.php child šablony Impreza

*Před vložením jakéhokoli dodatečného kódu, byste si měli udělat kompletní zálohu vašeho webu pro případ komplikací. Dále je také vhodné zkoušet nové úpravy na testovací verzi webu.

Rozbalovací boční menu pro WooCommerce a WordPress
Zobrazení ceny se slevou v košíku a pokladně ve WooCommerce

Potřebujete s něčím pomoci?

Líbil se vám článek? Sdílejte ho s přáteli

Autor

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *

Vyplňte toto pole
Vyplňte toto pole
Zadejte prosím platnou e-mailovou adresu.

Přihlaste se k odběru novinek

Vložením e-mailu souhlasíte s podmínkami ochrany osobních údajů.

Woocommerce pluginy
Elementor plugin