настраиваемый фильтр изменения раскрывающегося списка для флажка - PullRequest
0 голосов
/ 12 февраля 2019

Я использую «менеджер заданий wp» и пытаюсь отфильтровать / выполнить поиск по настраиваемому полю, которое я добавил в задания при отправке.Автор плагина предлагает учебник по добавлению выпадающего меню для фильтрации добавленного поля «зарплата», и я хотел бы изменить этот учебник, чтобы использовать флажок вместо раскрывающегося списка.Будем очень благодарны за любые предложения.

<?php
add_action( 'job_manager_job_filters_search_jobs_end', 'filter_by_salary_field' );
function filter_by_salary_field() {
    ?>
    <div class="search_categories">
        <label for="search_categories"><?php _e( 'Seasons', 'wp-job-manager' ); ?></label>
        <select name="filter_by_salary" class="job-manager-filter">
            <option value="">Any Season</option>
            <option value="summer">Summer</option>
            <option value="spring">Spring</option>
            <option value="fall">Fall</option>
            <option value="winter">Winter</option>
        </select>


    </div>
    <?php
}

add_filter( 'job_manager_get_listings', 'filter_by_salary_field_query_args', 10, 2 );
function filter_by_salary_field_query_args( $query_args, $args ) {
    if ( isset( $_POST['form_data'] ) ) {
        parse_str( $_POST['form_data'], $form_data );
        // If this is set, we are filtering by salary

        if ( ! empty( $form_data['filter_by_salary'] ) ) {
            $selected_range = sanitize_text_field( $form_data['filter_by_salary'] );



            switch ( $selected_range ) {
                case 'fall' :
                    $query_args['meta_query'][] = array(
                        'key'     => '_season',
                        'value'   => 'fall',
                        'compare' => 'IN'
                    );
                    break;
                case 'spring' :
                    $query_args['meta_query'][] = array(
                        'key'     => '_season',
                        'value'   => 'spring',
                        'compare' => 'IN'
                    );
                    break;
                case 'summer' :
                    $query_args['meta_query'][] = array(
                        'key'     => '_season',
                        'value'   => 'summer',
                        'compare' => 'IN'
                    );
                    break;
                default :
                    $query_args['meta_query'][] = array(
                        'key'     => '_season',
                        'value'   => 'winter',
                        'compare' => 'IN'
                    );
                    break;
            }
            // This will show the 'reset' link
            add_filter( 'job_manager_get_listings_custom_filter', '__return_true' );
        }
    }

    return $query_args;
}
...