Плагін WHWS Display In Stock Products First – відображення товарів в наявності першими

Click here to view original web page at wpinsideblog.com

У мене в блозі вже був максимально детальний пост про сортування товарів по їх наявності, коли вся продукція магазину, якої немає в наявності, відображається у самому кінці каталогу. Також можна згадати пост теоретичного характеру про наявність товарів в Woocommerce і відображення відповідних текстових міток + інші корисні функції. Сьогодні хочу доповнити всю цю інфу одним мега класним модулем — WHWS Display In Stock Products First For WooCommerce!

WHWS Display In Stock Products First

В чому власне була проблема… Під час оновлення одного магазину до більш сучасного шаблону з використанням останньої версії для WordPress основний хак із першої статті (де використовується класс iWC_Orderby_Stock_Status) у мене не спрацював. На жаль, розбиратись детально в чому там саме проблема у мене не було ні часу, ні бажання, бо новий макет сам по собі має купу додаткових модулів та рішень, і це міг бути просто конфлікт між різними функціями. Саме тому я вирішив пошукати готове рішення, яким власне і став «герой» сьогоднішньої статті.

У плагіна WHWS Display In Stock Products First For WooCommerce досить мало завантажень (всього півтисячі), але декілька людей оцінили його найвищим балом – 5. Єдине, як бачите, що для версії WP 6.1 можуть бути нюанси.

WHWS Display In Stock Products First For WooCommerce
В цілому я повністю погоджуюсь з коментаторами, бо плагін на 100% виправдав мої сподівання. Ви просто знаходите його в репозиторії в своїй адмінці, після чого встановлюєте і активуєте. Все, більш нічого робити не потрібно!

На всяк випадок лише раджу заглянути в налаштування вашої теми, де розміщені параметри Woocommerce – чи встановлено потрібне вам сортування каталогу за замовчуванням.

параметри Woocommerce
Модуль WHWS Display In Stock Products First є OpenSource рішенням, тому можете заглянути в його код і подивитись як саме розробник вирішив задачу відображення товарів в наявності на перших позиціях WooCommerce магазину.

P.S. На останок можу додати 2 цікаві моменти…

По-перше, в процесі пошуку рішення знайшов такий фрагмент коду який дозволяє задати для каталогу товарів сортування по двом критеріям:

add_filter('woocommerce_get_catalog_ordering_args', 'aminnz_instock_products_first', 9999);
 
if (!function_exists(('aminnz_instock_products_first'))) {
    function aminnz_instock_products_first($args)
    {
        $args['orderby'] = ['meta_value' => 'ASC', 'modified' => 'DESC'];
        $args['meta_key'] = '_stock_status';
 
        return $args;
    }
}

Перший критерій це «наявність товару» (мета ключ _stock_status), а другий – відображення нових записів першими (modified = DESC).

Ще один важливий момент(!) — окрім відображення товарів в глобальному каталозі, ще є сортування елементів в шорткодах Woocommerce, в схожих постах і т.д. Всі ці моменти можете подивитись по самому першому лінку в даній статті, де я вже робив підбірку різних хаків.