• Вопрос без рабочей ссылки на проблему считается риторическим. Без ссылки и скриншота - провокацией!
  • Темы озаглавленные с маленькой буквы или капсом удаляются без предупреждения!

Нужно на странице сайта на wordpress сделать выводку товара по цене от минимальной к максимальной.

Image CMS
#1
Помогите уважаемые спецы. Я как понимаю для Вас особо труда не составит подсказать как можно в рамках шорткода который является конфигуратором подбора товара сделать сортировку на странице по умолчанию по цене от мин к макс. Буду признателен. Ниже сам кусок кода функции:

Код:
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 вызывается на странице шорт кодом. Весь мозг сломал как в ту страницу внедрить сортировку по цене от минимума к максимуму.
 
Последнее редактирование модератором:
Сверху Снизу