Дмитрий Ивнович
Новичок

Помогите уважаемые спецы. Я как понимаю для Вас особо труда не составит подсказать как можно в рамках шорткода который является конфигуратором подбора товара сделать сортировку на странице по умолчанию по цене от мин к макс. Буду признателен. Ниже сам кусок кода функции:
Функция configurator_di вызывается на странице шорт кодом. Весь мозг сломал как в ту страницу внедрить сортировку по цене от минимума к максимуму.
Код:
function configurator_di(){
?>
<style>
.entry-content {
font-size: 25px;
font-size: initial;
}
</style>
<div class="full_wrap col-lg-12 col-md-12 col-sm-12 col-xs-12">
<div class="full_config">
<p class="title">Подобрать автомобиль</p>
<div class="fild_hold col-lg-3 col-md-3 col-sm-3 col-xs-12">
<label>Выбрать класс автомобиля</label>
<select name="auto_class">
<option selected value="">Все классы</option>
<?
$args = array(
'taxonomy' => 'product_cat',
'parent' => 0,
);
$categories = get_categories($args);
foreach ($categories as $cat) {
echo '<option value="'.$cat->name.'" rel_id="'.$cat->term_id.'" rel_slug="'.$cat->name.'">'. $cat->name .'</option>';
}
?>
</select>
</div>
<div class="fild_hold col-lg-3 col-md-3 col-sm-3 col-xs-12">
<label>Указать марку</label>
<select name="trademark">
<option selected value="">Все марки</option>
<?
$field = get_field_object('trademark', 170, array('load_value' => true));
sort($field[choices]);
foreach ($field["choices"] as $choice) {
echo '<option value="'. $choice .'">'. $choice .'</option>';
}
?>
</select>
</div>
<div class="fild_hold nk2 col-lg-3 col-md-3 col-sm-3 col-xs-12">
<label>Коробка передач</label>
<select name="gearbox">
<option selected value="">Любой тип</option>
<?
$field = get_field_object('gearbox', 170, array('load_value' => true));
foreach ($field["choices"] as $choice) {
echo '<option value="'. $choice .'">'. $choice .'</option>';
}
?>
</select>
</div>
<div class="fild_hold nk2 col-lg-3 col-md-3 col-sm-3 col-xs-12">
<label>Год выпуска</label>
<select name="create_year">
<option selected value="">Весь период</option>
<?
$field = get_field_object('create_year', 170, array('load_value' => true));
foreach ($field["choices"] as $choice) {
echo '<option value="'. $choice .'">'. $choice .'</option>';
}
?>
</select>
</div>
</div>
</div>
<div class="new col-lg-12 col-sm-12 col-md-12 col-xs-12 text-center" style="margin: 15px 0;">
<a class="blue_btn_filled rsg">Подобрать</a>
</div>
<div class="ajaxrespond col-lg-12 col-sm-12 col-md-12 col-xs-12">
<?
$auto_class = htmlspecialchars($_GET['auto_class']);
$trademark = htmlspecialchars($_GET['trademark']);
$gearbox = htmlspecialchars($_GET['gearbox']);
$create_year = htmlspecialchars($_GET['create_year']);
$limit_count = 1000;
$args = array(
'post_type' => 'product',
'orderby' => 'meta_value_num',
'numberposts' => -1,
'tax_query' => array(
'relation' => 'AND',
),
'suppress_filters' => true, // подавление работы фильтров изменения SQL запроса golf_class
);
if($trademark != ''){
$args['meta_value'][] = $trademark;
}
if($auto_class != ''){
$args['tax_query'][] = array(
'taxonomy' => 'product_cat',
'field' => 'name',
'terms' => $auto_class,
'operator' => 'IN'
);
}
if($gearbox != ''){
$args['meta_query'][] = array(
array(
'key' => 'gearbox',
'value' => $gearbox,
'compare' => '=',
)
);
}
if($create_year != ''){
$args['meta_query'][] = array(
array(
'key' => 'create_year',
'value' => $create_year,
'compare' => '=',
)
);
}
$posts = get_posts( $args );
$_pf = new WC_Product_Factory();
$count= count($posts);
echo "<div class='filt_selector'>Выбранно: {$auto_class} {$trademark} {$gearbox} {$create_year} <span class='count'>Найдено: {$count}</span></div>";
if($count == 0){echo "<div class='alert_filt'><img src='http://findicons.com/files/icons/690/air/128/error.png'/>Авто с выбранными характеристиками отсутсвуют, воспользуйтесь другим набором параметров</div>";}
foreach($posts as $product) if ($limit++ < $limit_count){
render_car($product->ID);
}?>
<?
print_r(get_defined_vars($posts));
?>
</div>
<script type="text/javascript">
$(document).ready(function(){
$('.rsg').click(function(){
var auto_class = $('select[name=auto_class]').val();
var trademark = $('select[name=trademark]').val();
var gearbox = $('select[name=gearbox]').val();
var create_year = $('select[name=create_year]').val();
$('.ajaxrespond').slideUp();
$.ajax({
url: "/wp-admin/admin-ajax.php", //url, к которому обращаемся
type: "POST",
data: {
action : 'test_ajax',
auto_class : auto_class ,
trademark : trademark ,
gearbox : gearbox ,
create_year : create_year ,
limit : 1000 ,
},
success: function (response) {
console.log('AJAX response : ',response);
$('.ajaxrespond').html('<div class="wrap">'+response+"</div>");
$('.ajaxrespond').slideDown();
$('html, body').animate({
scrollTop: $(".ajaxrespond").offset().top
}, 2000);
$(".ajax_modal").leanModal({ top : 50, overlay : 0.4, closeButton: ".modal_close" });
}
});
});
});
</script>
<?
}
function render_car($id){
$fields = get_fields($id);
?>
<div class="container">
<div class="row">
<div class="product_all col-lg-12 col-md-12 col-sm-12 col-xs-12">
<div class="image_holder col-lg-6 col-md-6 col-sm-6 col-xs-12">
<img style="width: 100%;" src="<?=get_the_post_thumbnail_url( $id, array(550,350) ); ?>"/>
</div>
<div class="descr col-lg-6 col-md-6 col-sm-6 col-xs-12">
<a class="title" href="<?=get_the_permalink($id)?>"><?=get_the_title($id)?></a>
<p class="date">Год выпуска: <?=$fields["create_year"]?></p>
<div class="inf_items col-lg-12 col-sm-12 col-md-12 col-xs-12">
<?if($fields["seat_count"]){?><div class="icon col-xs-3"><img src="/template/img/ppl.png"/><span><?=$fields["seat_count"]?></span></div><?}?>
<?if($fields["doors_count"]){?><div class="icon col-xs-3"><img src="/template/img/Doors.png"/><span><?=$fields["doors_count"]?></span></div><?}?>
<?if($fields["gearbox"]){?><div class="icon col-xs-3"><img src="/template/img/korobka.png"/><span><?=mb_strimwidth($fields["gearbox"], 0, 1)?></span></div><?}?>
<?if($fields["conditioner"][0] == 'Есть'){?><div class="icon col-xs-3"><img src="/template/img/condey.png"/><span>+</span></div><?}?>
</div>
<div class="rent_prices">
<p>C ограниченим пробега</p>
<table cellspacing="0" width="100%">
<thead>
<tr>
<th>Дни</th>
<th>1-3</th>
<th>4-10</th>
<th>11-30</th>
<th>30+</th>
<th>Выходные</th>
</tr>
</thead>
<tbody>
<tr>
<td>Руб.</td>
<td><?= number_format( $fields["1-3x"] , 0, '', ' ');?></td>
<td><?= number_format( $fields["4-10x"] , 0, '', ' ');?></td>
<td><?= number_format( $fields["11-30x"] , 0, '', ' ');?></td>
<td><?= number_format( $fields["30plusx"] , 0, '', ' ');?></td>
<td><?= number_format( $fields["weekendsx"] , 0, '', ' ');?></td>
</tr>
</tbody>
</table>
<div style="display:none;">
<p>Без ограничения пробега</p>
<table cellspacing="0">
<thead>
<tr>
<th>Дни</th>
<th>1-2</th>
<th>3</th>
<th>4-10</th>
<th>11-30</th>
<th>Выходные</th>
<th>Залог</th>
</tr>
</thead>
<tbody>
<tr>
<td>Руб.</td>
<td><?=$fields["1-3"]?></td>
<td><?=$fields["30plus"]?></td>
<td><?=$fields["4-10"]?></td>
<td><?=$fields["11-30"]?></td>
<td><?=$fields["weekends"]?></td>
<td><?=$fields["caution_bail"]?></td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="links_pod col-lg-6 col-sm-6 col-md-6 col-xs-12">
<a class="blue_btn_filled_new" href="<?=get_the_permalink($id)?>">Подробнее</a>
</div>
<div class="links_order col-lg-6 col-sm-6 col-md-6 col-xs-12">
<a class="blue_btn_filled_new getclac ajax_modal_form" dataid="<?=$id?>" href="#calc_form_1">Заказать сразу</a>
</div>
</div>
</div>
</div>
</div>
<?
}
Функция configurator_di вызывается на странице шорт кодом. Весь мозг сломал как в ту страницу внедрить сортировку по цене от минимума к максимуму.
Последнее редактирование модератором: