Stack Overflow на русском Asked on January 24, 2021
Подскажите, могу ли я с помощью этого метода достать товары из базы по диапазону цен wc_get_products().например от 1000 до 2000. Если да, то как передать диапазон?
с помощью этого метода не получится выбрать товары по мета полю, потому что это поле формируется в другом месте и оно не обращает внимание на аргумент meta_query переданный в функцию wp_get_products. вам нужно использовать WP_Query или get_posts для получения товаров, например так
$products = get_posts(
[
'posts_per_page' => -1,
'post_status' => 'publish',
'post_type' => 'product',
'fields' => 'ids',
'meta_query' => [
[
'key' => '_price',
'value' => [ 1000, 2000 ],
'compare' => 'BETWEEN',
'type'=> 'DECIMAL(10,' . wc_get_price_decimals() . ')'
]
]
]
);
foreach ( $products as $product_id ) {
$product = wc_get_product( $product_id );
echo "{$product->get_price()}<br>";
}
Answered by Darth KYL on January 24, 2021
Можно получить через WP_Query
$args = array(
'post_status' => 'publish',
'post_type' => 'product',
'posts_per_page' => -1,
'meta_query' => array(
array(
'key' => '_price',
'value' => array(1000, 2000),
'compare' => 'BETWEEN',
'type' => 'NUMERIC'
)
)
);
$the_query = new WP_Query($args);
if ($the_query->have_posts()) :
while ( $the_query->have_posts() ) : $the_query->the_post();
$product_id = $the_query->post->ID;
$product = wc_get_product( $product_id);
endwhile;
endif;
Answered by Valerii Vasiliev on January 24, 2021
Get help from others!
Recent Questions
Recent Answers
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP