Цена заказа в WP_Query для продуктов Woocommerce - PullRequest
1 голос
/ 11 июня 2019

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

Я пытаюсь отсортировать свои товары по цене, но это не работает нормально.

Этомой код для получения продуктов, он работает нормально, если я не использую "orderby".

$args = array(
    'post_type'=> 'product',
    'meta_key' => 'price',
    'orderby' => 'meta_value_num',
    'order' => 'ASC'
);
$wooCommerceargs = new WP_Query( $args );

Но проблема не в том, что продукт показывает!

1 Ответ

1 голос
/ 11 июня 2019

Во-первых, не используйте WP_Query() или get_posts(). Из документа WooCommerce:

wc_get_products и WC_Product_Query предоставляют стандартный способ извлечения продуктов, который безопасен в использовании и не нарушается из-за изменений базы данных в будущих версиях WooCommerce. Создание пользовательских запросов WP_Queries или базы данных может привести к поломке кода в будущих версиях WooCommerce, поскольку данные перемещаются в сторону пользовательских таблиц для повышения производительности.

См. Документация WooCommerce

Во-вторых, вы не можете заказать по цене непосредственно в запросе. Получите ваши продукты, затем вызовите функцию wc_products_array_orderby().

$args     = array(); // Optional arguments
$products = wc_get_products( $args );
$ordered  = wc_products_array_orderby( $products, 'price', 'ASC' );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...