4ответ(ов) в теме
sergey.akjalov
не в сети 3 года
На сайте с 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Причина: не указано

Fatal error: Uncaught Error: Call to undefined function ads_get_box() in /var/www/www-root/data/www/codeseller.ru/wp-content/themes/codeseller/includes/adv.php:15 Stack trace: #0 /var/www/www-root/data/www/codeseller.ru/wp-includes/class-wp-hook.php(310): add_adv_content_after_first_forum_post('pfm-single-post...', '/var/www/www-ro...') #1 /var/www/www-root/data/www/codeseller.ru/wp-includes/class-wp-hook.php(334): WP_Hook->apply_filters('', Array) #2 /var/www/www-root/data/www/codeseller.ru/wp-includes/plugin.php(517): WP_Hook->do_action(Array) #3 /var/www/www-root/data/www/codeseller.ru/wp-content/plugins/wp-recall/functions/files.php(57): do_action('rcl_include_tem...', 'pfm-single-post...', '/var/www/www-ro...') #4 /var/www/www-root/data/www/codeseller.ru/wp-content/plugins/wp-recall/add-on/prime-forum/functions-templates.php(117): rcl_include_template('pfm-single-post...', '/var/www/www-ro...') #5 /var/www/www-root/data/www/codeseller.ru/wp-content/plugins/wp-recall/add-on/prime-forum/themes/prime-first/templates/pfm in /var/www/www-root/data/www/codeseller.ru/wp-content/themes/codeseller/includes/adv.php on line 15