4ответ(ов) в теме
СалюТ всем форумчанам, возник такой вопрос как можно расширить стандартный фильтр заявок на кастомный (добвляешь дополнительные поля в форме публикации вот на них добавить фильтр) как я понял визаульно все работает ниже прикрепил код как сделать теперь чтобы все выводилось в фильтре
<?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Причина: не указано
Вы не имеете права на публикацию сообщений в этой теме