Intereting Posts
Использование get_posts с аргументами, найденными в мета-ключах передача значения нескольких родителей в короткий код Как отключить заголовок и описание сайта, когда пользовательский заголовок загружается в customizer? Включение бесплатной доставки в Woo Commerce по отдельным товарам Как добавить класс ко всем боковым панелям, чтобы позволить Google Custom Search Engine не индексировать контент? Я хотел бы удалить URL и описание из заголовка WordPress links / bookmarks – нужно urlencode, потому что пробелы теряются Есть ли способ добавить slug to home_url в эту функцию? пользовательский файл шаблона сообщения не показан, а все время 404.php Почему WordPress автоматически обрезает все мои изображения? Как ограничить регистрацию пользователя определенным набором доменов? Импорт и экспорт ссылок с WordPress.com на частный сайт Обтекание cancel_comment_reply_link () Выпадающее меню подменю для отображения содержимого страницы wp_mail привязанность беды!

Как применить пользовательский сортировку к контуру продукта WooCommerce

У моего клиента есть интернет-магазин WooCommerce, который в настоящее время отображает его продукты (около 600) в обратном хронологическом порядке (самый новый, самый старый).

Проблема в том, что старые продукты не продаются, потому что они всегда находятся в нижней части страницы, а его клиенты очень редко прокручивают страницу (очень длинные 600 продуктов!).

К сожалению, клиент не готов разделить продукты на категории или на отдельные страницы. Он также против случайного сортировки продукта, который запускается каждый раз, когда отображается страница магазина.

Однако он согласился на следующее:

  1. всегда отображайте НОВЫЕ продукты в верхней части страницы (мы уже отмечаем их с помощью post_meta _product_new );
  2. разделить продукты REMAINING на два блока (самые старые 50% и самые новые 50%) и поочередно отображать эти блоки в соответствии с текущим месяцем – даже первые месяцы 50% сначала блокируются, а первые 50% блокируют первые месяцы.

ВАЖНО, что post_meta помеченные post_meta , ВСЕГДА находятся в верхней части страницы.

Я думаю, что должно быть возможно применить пользовательский вид продукта, используя крюк pre_get_post :

 add_action( 'pre_get_posts', 'custom_vtp_shop_order' ); function custom_vtp_shop_order($q){ if ( ! $q->is_main_query() ) return; if (! is_admin() && (is_shop() || is_archive) ) { ...do the magic here... } remove_action( 'pre_get_posts', 'custom_vtp_shop_order' ); } 

но я не уверен, как это сделать.

Это то, что мне нужно:

  1. Блок 1: получить все продукты с post_meta _product_new ;
  2. Блок 2: получить все остальные продукты и отсортировать их в обратном хронологическом порядке (сначала самые новые, самые старые);
  3. Разделить блок 2 в середине, создав блок 3 и блок 4; 4а. В четные месяцы (февраль, апрель, июнь и т. Д.) Заказывайте мои продукты по блоку 1, блок 3, блок 4; 4b. В нечетные месяцы (январь, март, май и т. Д.) Заказывайте мои продукты по блоку 1, блок 4, блок 3.

Заранее благодарю за любую помощь!