Woocommerce изменить запрос выборки товаров
Проблема такая, есть товары со статусом "В наличии", а есть "Нет в наличии".
На страницах каталога товары "нет в наличии" не отображаются. Но это сделано как-то по кривому. Выводиться должно 12 товаров на страницу, но выводится, например, 8. Посмотрел запросы в базу данных - там всё верно лимит 0, 12. Но сам запрос не учитывает, что в выборку попадают товары со статусом "нет в наличии". Они видимо, потом как-то отсекаются и на странице оказывается не 12 товаров, а меньше.
Так вот, подскажите, где формируется запрос в базу данных, чтобы можно было добавить нужные исключения?
Сейчас запрос такой:
Хочу поменять на такой:
На страницах каталога товары "нет в наличии" не отображаются. Но это сделано как-то по кривому. Выводиться должно 12 товаров на страницу, но выводится, например, 8. Посмотрел запросы в базу данных - там всё верно лимит 0, 12. Но сам запрос не учитывает, что в выборку попадают товары со статусом "нет в наличии". Они видимо, потом как-то отсекаются и на странице оказывается не 12 товаров, а меньше.
Так вот, подскажите, где формируется запрос в базу данных, чтобы можно было добавить нужные исключения?
Сейчас запрос такой:
Код:
SELECT SQL_CALC_FOUND_ROWS w9p_posts.ID FROM w9p_posts INNER JOIN ( SELECT post_id, min( meta_value+0 ) price FROM w9p_postmeta WHERE meta_key='_price' GROUP BY post_id ) as price_query ON w9p_posts.ID = price_query.post_id WHERE 1=1 AND (
w9p_posts.ID NOT IN (
SELECT object_id
FROM w9p_term_relationships
WHERE term_taxonomy_id IN (1823,1825)
)
) AND w9p_posts.post_type = 'product' AND (w9p_posts.post_status = 'publish' OR w9p_posts.post_status = 'private') GROUP BY w9p_posts.ID ORDER BY price_query.price ASC, w9p_posts.ID ASC LIMIT 0, 12
Код:
SELECT SQL_CALC_FOUND_ROWS w9p_posts.ID FROM w9p_posts
LEFT JOIN (SELECT post_id, `meta_value` as stock_status FROM w9p_postmeta WHERE meta_key='_stock_status' GROUP BY post_id)
AS w_stock ON w9p_posts.ID = w_stock.post_id
INNER JOIN ( SELECT post_id, min( meta_value+0 ) price FROM w9p_postmeta WHERE meta_key='_price' GROUP BY post_id ) as price_query ON w9p_posts.ID = price_query.post_id WHERE 1=1 AND (
w9p_posts.ID NOT IN (
SELECT object_id
FROM w9p_term_relationships
WHERE term_taxonomy_id IN (1823,1825)
)
) AND w_stock.stock_status = 'instock' AND w9p_posts.post_type = 'product' AND (w9p_posts.post_status = 'publish' OR w9p_posts.post_status = 'private') GROUP BY w9p_posts.ID ORDER BY price_query.price ASC, w9p_posts.ID ASC LIMIT 0, 12