Как показать товары не в наличии в конце списка? 2 рабочих метода ➤ Магазин WooCommerce
Как полностью скрыть отсутствующие товары или показать их в конце списка в магазине WooCommerce?
Есть два способа решения этой задачи:
- Скрыть отсутствующие товары в каталоге магазина и убрать их из поиска. Но, такие товары будут доступны для индексации поисковиками.
- Отсутствующие товары видны всем, но отображаются в конце списка.
Какой метод выбрать вам? Решайте сами! Оба метода работают и их применение зависит от поставленных задач и целей владельца магазина.
Смотреть видео
00:00 Вступление.
01:14 Сортировка товаров в магазине WooCommerce.
02:36 Два метода отображения товаров, которых нет в наличии.
03:55 Первый метод: скрываем в магазине отсутствующие позиции.
05:28 Второй метод: отображаем отсутствующие позиции в конце списка.
08:31 Завершение.
Код функции (для второго метода):
Код вставить в файл functions.php дочерней темы (Что такое дочерняя тема и как ее использовать?). Или для вставки кода можно использовать эти плагины.
class iWC_Orderby_Stock_Status {
public function __construct() {
if (in_array('woocommerce/woocommerce.php', apply_filters('active_plugins', get_option('active_plugins')))) {
add_filter('posts_clauses', array($this, 'order_by_stock_status'), 2000);
}
}
public function order_by_stock_status($posts_clauses) {
global $wpdb;
if (is_woocommerce() && (is_shop() || is_product_category() || is_product_tag())) {
$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;
}
}
new iWC_Orderby_Stock_Status;