4ответ(ов) в теме
sergey.akjalov
не в сети 2 года
На сайте с 06.11.2018
Участник
Тем 22
Сообщения 111
1
16:31
Версия WP-Recall: 16
Версия дополнения: 111

СалюТ всем форумчанам, возник такой вопрос как можно расширить стандартный фильтр заявок на кастомный (добвляешь дополнительные поля в форме публикации вот на них добавить фильтр) как я понял визаульно все работает ниже прикрепил код как сделать теперь чтобы все выводилось в фильтре

<?php

add_shortcode('fng-search-form', 'fng_get_search_form');
function fng_get_search_form($atts = false){
    global $wpdb;
    
    extract(shortcode_atts(array(
        'type'=> 'vertical'
    ),
    $atts));
    
    $maxPrice = $wpdb->get_var("SELECT MAX(cast(postmeta.meta_value as unsigned)) FROM $wpdb->postmeta AS postmeta "
                    . "INNER JOIN $wpdb->posts AS posts ON postmeta.post_id=posts.ID "
                    . "WHERE posts.post_type = 'task' "
                    . "AND posts.post_status='publish' "
                    . "AND postmeta.meta_key='fng-price'");
    
    $terms = get_terms( array(
        'taxonomy' => 'task-subject',
        'hide_empty' => false,
        'parent' => 0
    ) );

    $category = array();
    foreach($terms as $term){
        $category[$term->term_id] = $term->name;
    }
    
    $fields = array(
        array(
            'type' => 'text',
            'slug' => 'fs',
            'default' => isset($_GET['fs'])? $_GET['fs']: '',
            'title' => __('Поиск по слову'),
            'placeholder' => __('Поиск...')
        ),
        array(
            'type' => 'select',
            'slug' => 'fstatus',
            'title' => __('Статус закупки'),
            'values' => array(
                0 => __('Все задания'),
                1 => __('Подбор исполнителя'),
                2 => __('В работе'),
                5 => __('Завершено')
            ),
            'default' => isset($_GET['fstatus'])? $_GET['fstatus']: '',
        ),
        array(
            'type' => 'select',
            'slug' => 'fsubject',
            'title' => __('Категория'),
            'default' => isset($_GET['fsubject'])? $_GET['fsubject']: '',
            'values' => $category
        ),
		 array(
            'type' => 'select',
            'slug' => 'vid_zakupki_31',
            'title' => __('Вид закупки'),
			'values' => array(
                1 => __('СМР'),
                0 => __('ТИЦ'),
                2 => __('Услуги'),                
				),
            'default' => isset($_GET['vid_zakupki_31'])? $_GET['vid_zakupki_31']: '',
			        ),
		 array(
            'type' => 'select',
            'slug' => 'vid_tru_57',
            'title' => __('Вид ТРУ'),
			'values' => array(
                1 => __('ИТ Услуги'),
                0 => __('Все виды ТРУ'),
                2 => __('Услуги'),                
				),
            'default' => isset($_GET['vid_tru_57'])? $_GET['vid_tru_57']: '',
        ),
				 array(
            'type' => 'select',
            'slug' => 'region_postavki_68',
            'title' => __('Регион поставки'),
			'values' => array(
                1 => __('Астана'),
                0 => __('Алматы'),
                2 => __('Другие регионы'),                
				),
            'default' => isset($_GET['region_postavki_68'])? $_GET['region_postavki_68']: '',
        ),
		
               array(
            'type' => 'range',
            'slug' => 'fprice',
            'title' => __('Стоимость'),
            'value_max' => ($maxPrice && $maxPrice > 5000)? $maxPrice: 5000,
            'value_step' => 100,
            'default' => isset($_GET['fprice'])? $_GET['fprice']: '',
        ),
        array(
            'type' => 'radio',
            'slug' => 'forderby',
            'title' => __('Сортировка по'),
            'values' => array(
                'date' => __('дате'),
                'price' => __('стоимости')
            ),
            'default' => isset($_GET['forderby'])? $_GET['forderby']: '',
        ),
        array(
            'type' => 'radio',
            'slug' => 'forder',
            'title' => __('Вывод по'),
            'values' => array(
                'DESC' => __('убыванию'),
                'ASC' => __('возрастанию')
            ),
            'default' => isset($_GET['forder'])? $_GET['forder']: '',
        )
    );
    
    $fields = apply_filters('fng_search_fields', $fields);

    $content = '<div class="fng-search-form type-'.$type.'">';

    $content .= rcl_get_form(array(
        'fields' => $fields,
        'method' => 'get',
        'action' => get_post_type_archive_link('task'),
        'submit' => __('Найти задание')
    ));
    
    $content .= '</div>';
    
    return $content;
    
}

Редакции сообщения
22.11.2018 16:39Андрей CSПричина: не указано
0
Андрей CS
не в сети 12 часов
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16968
2
16:42

для этого надо добавить нужные условия в обработчик данных с этой формы, функция fng_task_query_filter() находится в файле /wp-content/wp-recall/add-on/freelance-nextgen/functions-actions.php

0
sergey.akjalov
не в сети 2 года
На сайте с 06.11.2018
Участник
Тем 22
Сообщения 111
3
10:00

Вы не можете просматривать опубликованные ссылки

Сделал я фильтр теперь пролема как сделать так чтоб выводилась цена при результате

ОЧЕНЬ БУДУ БЛАГОДАРЕН ЕСЛИ ПОДСКЖЕШЬ В КАКУЮ СТОРОНУ КАПАТЬ

user
2017 для входа через ВП админ

0
Андрей CS
не в сети 12 часов
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16968
4
10:31

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

Редакции сообщения
23.11.2018 10:31Андрей CSПричина: не указано
0
Вы не имеете права на публикацию сообщений в этой теме