Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- add_action( 'job_manager_job_filters_search_jobs_end', 'filter_by_salary_field' );
- function filter_by_salary_field() {
- ?>
- <div class="search_categories" style="padding-left: .5em !important;padding-right: 0em !important;">
- <label for="search_categories"><?php _e( 'Salary', 'wp-job-manager' ); ?></label>
- <select name="filter_by_salary" class="job-manager-filter">
- <option value=""><?php _e( 'Any Salary', 'wp-job-manager' ); ?></option>
- <option value="upto10"><?php _e( 'Up to £10,000', 'wp-job-manager' ); ?></option>
- <option value="15000-20000"><?php _e( '£15,000 to £20,000 (£7.50 to £9.60ph)', 'wp-job-manager' ); ?></option>
- <option value="20000-25000"><?php _e( '£20,000 to £25,000', 'wp-job-manager' ); ?></option>
- <option value="over40"><?php _e( '£40,000+', 'wp-job-manager' ); ?></option>
- </select>
- </div>
- <?php
- }
- /**
- * This code gets your posted field and modifies the job search query
- */
- 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 'upto10' :
- $query_args['meta_query'][] = array(
- 'key' => '_job_salary',
- 'value' => '10000',
- 'compare' => '<',
- 'type' => 'NUMERIC'
- );
- break;
- case 'over40' :
- $query_args['meta_query'][] = array(
- 'key' => '_job_salary',
- 'value' => '40000',
- 'compare' => '>=',
- 'type' => 'NUMERIC'
- );
- break;
- default :
- $query_args['meta_query'][] = array(
- 'key' => '_job_salary',
- 'value' => array_map( 'absint', explode( '-', $selected_range ) ),
- 'compare' => 'BETWEEN',
- 'type' => 'NUMERIC'
- );
- break;
- }
- // This will show the 'reset' link
- add_filter( 'job_manager_get_listings_custom_filter', '__return_true' );
- }
- }
- return $query_args;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement