Как настроить вывод товаров в Woocommerce так, чтобы товары с определенной меткой выводились всегда последними?
В Woocommerce есть мнго товаров. Некоторая часть из них имеет метку "загруженные".
Цель: Необходимо настроить вывод товаров так, чтобы товары с меткой "загруженные" выводились всегда в самом конце. Даже если в каталоге выбираем какую-то сортировку, то "меченые" товары все равно должны быть в конце.
В интернете находил решение для подобного вопроса, но для товаров без цены и нулем:
// Товары без цены или с ценой равной нулю будут в конце списка add_filter('posts_clauses', 'order_by_no_price', 50, 2); function order_by_no_price($posts_clauses) { global $wpdb; if (!is_admin() && is_woocommerce() && (is_shop() || is_product_category() || is_product_tag() || is_product_taxonomy())) { if($posts_clauses['join']!=' LEFT JOIN wp_wc_product_meta_lookup wc_product_meta_lookup ON wp_posts.ID = wc_product_meta_lookup.product_id '){ $posts_clauses['join'] = $posts_clauses['join'] . " LEFT JOIN wp_wc_product_meta_lookup wc_product_meta_lookup ON wp_posts.ID = wc_product_meta_lookup.product_id "; } $posts_clauses['orderby'] = "wc_product_meta_lookup.min_price > 0 DESC, " . $posts_clauses['orderby']; } return $posts_clauses; }
Можно ли тут как-то переделать под мои условия?
Так понял, что в orderby нельзя отсортировать по таксаноми. Но можно по пользовательскому полю. Тогда как можно добавить масово значение пользовательского поля только товарам с нужной меткой?
Что вы имеете в виду и как это использовать?
Это совсем не про то. Речь не об админке и вариативных товарах. Нужно, чтобы в каталоге и категориях выводились все соответствующие товары, но те товары у которых есть метка "загруженные" должны выводиться в самом конце, последними. + неважно выбирает ли пользователь какой-то вид сортировки (по дате, цене и т.п.), но товары с меткой "загруженные" должны быть последними.
попробуйте, мне сказали выводятся в отфильтрованном виде
В самом вукомерсе есть возможность сортировки товаров по типу