Bonjour,

Voila je rencontre un petit problème avec mon code.

Ce que je fais

j'essaye d ajouter une select a la recherche wp job manager, mais ca ne fonctionne pas

add_action( 'job_manager_job_filters_search_jobs_end', 'filter_by_langue_field' );
function filter_by_langue_field() {
    ?>
    <div class="search_categories">
        <label for="search_categories"><?php _e( 'Langue', 'wp-job-manager' ); ?></label>
        <select name="display_job_langue_data[]" class="job-manager-filter">
            <option value=""><?php _e( 'Langues', 'wp-job-manager' ); ?></option>
            <option value="Anglais"><?php _e( 'Anglais', 'wp-job-manager' ); ?></option>
            <option value="Francais"><?php _e( 'Francais', 'wp-job-manager' ); ?></option>
            <option value="Allemand"><?php _e( 'Allemand', 'wp-job-manager' ); ?></option>
            <option value="Autre"><?php _e( 'Autre', 'wp-job-manager' ); ?></option>
        </select>
    </div>
    <?php
}
add_filter( 'job_manager_get_listings', 'filter_by_langue_field_query_args', 10, 2 );
function filter_by_langue_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 langue
        if ( ! empty( $form_data['display_job_langue_data'] ) ) {
            $selected_range = sanitize_text_field( $form_data['display_job_langue_data'] );
            switch ( $selected_range ) {
                case 'Anglais' :
                    $query_args['meta_query'][] = array(
                        'key'     => '_job_exp',
                        'value'   => 'Anglais',
                         'compare' => '=',
                        'type'    => 'VARCHAR'
                    );
                break;
                case 'Francais' :
                    $query_args['meta_query'][] = array(
                        'key'     => '_job_exp',
                        'value'   => 'Francais',
                         'compare' => '=',
                        'type'    => 'VARCHAR'
                    );
                break;
                case 'Allemand' :
                    $query_args['meta_query'][] = array(
                        'key'     => '_job_exp',
                        'value'   => 'Allemand',
                         'compare' => '=',
                        'type'    => 'VARCHAR'
                    );
                break;
                default :
                    $query_args['meta_query'][] = array(
                        'key'     => '_job_exp',
                        'value'   => array_map( 'absint', explode( '-', $selected_range ) ),
                         'compare' => '=',
                        'type'    => 'VARCHAR'
                    );
                break;
            }
            // This will show the 'reset' link
            add_filter( 'job_manager_get_listings_custom_filter', '__return_true' );
        }
    }
    return $query_args;
}

sachant que le code que j'ai mit pour ajouter la langue comme parametre est le suivant :

//langue parlé wp job manager frontend
add_filter( 'submit_job_form_fields', 'frontend_add_langue_field' );
function frontend_add_langue_field( $fields ) {
  $fields['job']['_job_exp'] = array(
    'label'       => __( 'Langue de la mission', 'job_manager' ),
    'type'        => 'multiselect',
    'options' => array('Français' => 'Français', 'Anglais' => 'Anglais', 'Allemand' => 'Allemand' ,'Autre' => 'Autre'),
    'required'    => true,
    'placeholder' => __( 'Sélectionner une ou plusieurs options', 'wp-job-manager' ),
    'priority'    => 4.2
  );
  return $fields;
}

Si vous avez des idées je serai reconnaissante

Aucune réponse