Я пытаюсь отсортировать продукты WooCommerce с максимальной вариацией цены (мой веб-сайт содержит простые и переменные продукты).
Мой пользовательский запрос ниже сортирует продукты по цене, но проблема в том, что что он берет минимальную вариационную цену из переменных продуктов. Есть ли способ вместо этого отсортировать их по максимальной цене вариации?
function products_load_more() {
$size = $_POST['size'];
$count = $_POST['count'];
$strength = $_POST['strength'];
$country = $_POST['country'];
$taxonomy_id = $_POST['taxonomy_id'];
$category = $_POST['category'];
$amount1 = (int) $_POST['amount1'];
$amount2 = (int) $_POST['amount2'];
$sorting = $_POST['sorting'];
$range_slider_array = array(0=>0,1=>100,2=>200,3=>300,4=>400,5=>500,6=>600,7=>700,8=>800,9=>900,10=>1000,11=>1500,12=>2000,13=>2500,14=>3000,15=>3500,16=>4000,17=>4500,18=>5000);
if($sorting == "h_t_l"){
$order = "DESC";
}
else{
$order = "ASC";
}
$args = array(
'post_type' => 'product',
'posts_per_page' => 8,
'orderby' => 'date',
'order' => 'DESC',
'paged' => $_POST['paged'],
'tax_query' => array( array(
'taxonomy' => 'product_cat',
'field' => 'term_id',
'terms' => $taxonomy_id
) )
);
// price
if(isset($_POST['amount1']) && isset($_POST['amount2'])){
if(trim($amount1) != "" && trim($amount2) != ""){
if($range_slider_array[$amount2] == 5000){
$args['meta_query'][] = array(
'key' => '_price',
'value' => $range_slider_array[$amount1],
'compare' => '>=',
'type' => 'NUMERIC'
);
}
else{
$args['meta_query'][] = array(
'key' => '_price',
'value' => array($range_slider_array[$amount1], $range_slider_array[$amount2]),
'compare' => 'BETWEEN',
'type' => 'NUMERIC'
);
}
}
}
$args['orderby'] = 'meta_value_num';
$args['order'] = 'DESC';
$args['meta_key'] = '_price';
$ajaxposts = new WP_Query($args);
$count = $ajaxposts->found_posts;
$response = '';
if($ajaxposts->have_posts()) {
while($ajaxposts->have_posts()) : $ajaxposts->the_post();
include get_stylesheet_directory()."/inc/product.php";
endwhile;
} else {
$response = 0;
}
echo $response;
exit;
}
add_action('wp_ajax_products_load_more', 'products_load_more');
add_action('wp_ajax_nopriv_products_load_more', 'products_load_more');
Подробнее здесь: https://stackoverflow.com/questions/787 ... a-custom-q
Как отсортировать переменные продукты WooCommerce по максимальной цене вариации в пользовательском запросе ⇐ Php
Кемеровские программисты php общаются здесь
1722079714
Anonymous
Я пытаюсь отсортировать продукты WooCommerce с максимальной вариацией цены (мой веб-сайт содержит простые и переменные продукты).
Мой пользовательский запрос ниже сортирует продукты по цене, но проблема в том, что что он берет минимальную вариационную цену из переменных продуктов. Есть ли способ вместо этого отсортировать их по максимальной цене вариации?
function products_load_more() {
$size = $_POST['size'];
$count = $_POST['count'];
$strength = $_POST['strength'];
$country = $_POST['country'];
$taxonomy_id = $_POST['taxonomy_id'];
$category = $_POST['category'];
$amount1 = (int) $_POST['amount1'];
$amount2 = (int) $_POST['amount2'];
$sorting = $_POST['sorting'];
$range_slider_array = array(0=>0,1=>100,2=>200,3=>300,4=>400,5=>500,6=>600,7=>700,8=>800,9=>900,10=>1000,11=>1500,12=>2000,13=>2500,14=>3000,15=>3500,16=>4000,17=>4500,18=>5000);
if($sorting == "h_t_l"){
$order = "DESC";
}
else{
$order = "ASC";
}
$args = array(
'post_type' => 'product',
'posts_per_page' => 8,
'orderby' => 'date',
'order' => 'DESC',
'paged' => $_POST['paged'],
'tax_query' => array( array(
'taxonomy' => 'product_cat',
'field' => 'term_id',
'terms' => $taxonomy_id
) )
);
// price
if(isset($_POST['amount1']) && isset($_POST['amount2'])){
if(trim($amount1) != "" && trim($amount2) != ""){
if($range_slider_array[$amount2] == 5000){
$args['meta_query'][] = array(
'key' => '_price',
'value' => $range_slider_array[$amount1],
'compare' => '>=',
'type' => 'NUMERIC'
);
}
else{
$args['meta_query'][] = array(
'key' => '_price',
'value' => array($range_slider_array[$amount1], $range_slider_array[$amount2]),
'compare' => 'BETWEEN',
'type' => 'NUMERIC'
);
}
}
}
$args['orderby'] = 'meta_value_num';
$args['order'] = 'DESC';
$args['meta_key'] = '_price';
$ajaxposts = new WP_Query($args);
$count = $ajaxposts->found_posts;
$response = '';
if($ajaxposts->have_posts()) {
while($ajaxposts->have_posts()) : $ajaxposts->the_post();
include get_stylesheet_directory()."/inc/product.php";
endwhile;
} else {
$response = 0;
}
echo $response;
exit;
}
add_action('wp_ajax_products_load_more', 'products_load_more');
add_action('wp_ajax_nopriv_products_load_more', 'products_load_more');
Подробнее здесь: [url]https://stackoverflow.com/questions/78798588/how-to-sort-woocommerce-variable-products-from-max-variation-price-in-a-custom-q[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия