Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function advanced_company_search() {
- if(isset($_GET['s'])) {
- // our advanced input boxes give us an array
- $filtered_search = array();
- $advanced_query = array(); // we will return this as our displayed search query
- $single_prefix = 'wpcf-';
- $multi_prefix = 'multi-'; // make sure it's the same prefix as above in prepare_company_data_for_advanced_search
- $postType = 'podjetje';
- // filter the $_GET vars into a secure array
- foreach ($_GET['s'] as $key => $value) {
- if (!empty($value)) {
- switch($key) {
- case 'region':
- $field = 'regija';
- $filtered_search[$field] = mysql_real_escape_string($value);
- $query = __('Region', 'iwasc');
- break;
- case 'municipality':
- $field = $single_prefix.'obcina';
- $filtered_search[$field] = mysql_real_escape_string($value);
- $query = __('Municipality', 'iwasc');
- break;
- case 'name':
- $field = $single_prefix.'ime';
- $filtered_search[$field] = mysql_real_escape_string($value);
- $query = __('Name', 'iwasc');
- break;
- case 'address':
- $field = $multi_prefix.'naslov';
- $filtered_search[$field] = mysql_real_escape_string($value);
- $query = __('Address', 'iwasc');
- break;
- case 'telephone':
- $field = $single_prefix.'telefon';
- $filtered_search[$field] = mysql_real_escape_string($value);
- $query = __('Telephone number', 'iwasc');
- break;
- case 'email':
- $field = $single_prefix.'eposta';
- $filtered_search[$field] = mysql_real_escape_string($value);
- $query = __('E-mail address', 'iwasc');
- break;
- case 'web':
- $field = $single_prefix.'povezava';
- $filtered_search[$field] = mysql_real_escape_string($value);
- $query = __('Website URL', 'iwasc');
- break;
- case 'pin':
- $field = $single_prefix.'maticna';
- $filtered_search[$field] = mysql_real_escape_string($value);
- $query = __('PIN', 'iwasc');
- break;
- case 'tin':
- $field = $single_prefix.'ddv_id';
- $filtered_search[$field] = mysql_real_escape_string($value);
- $query = __('Tax ID', 'iwasc');
- break;
- case 'iban':
- $field = $multi_prefix.'iban'; // since we merged all of them we use another custom field name
- $value = preg_replace('/ /', '', mysql_real_escape_string($value));
- $filtered_search[$field] = mysql_real_escape_string($value);
- $query = __('IBAN', 'iwasc');
- break;
- case 'bank':
- $field = $multi_prefix.'banka'; // since we merged all of them we use another custom field name
- $filtered_search[$field] = mysql_real_escape_string($value);
- $query = __('Bank', 'iwasc');
- break;
- case 'principal':
- $field = $single_prefix.'glavna_dejavnost';
- $filtered_search[$field] = mysql_real_escape_string($value);
- $query = __('Principal occupation', 'iwasc');
- break;
- default:
- $field = false;
- $query = false;
- $filtered_search[$field] = false;
- }
- }
- else {
- switch($key) {
- case 'region':
- $field = 'regija';
- $filtered_search[$field] = false;
- $query = __('Region', 'iwasc');
- break;
- case 'municipality':
- $field = $single_prefix.'obcina';
- $filtered_search[$field] = false;
- $query = __('Municipality', 'iwasc');
- break;
- case 'name':
- $field = $single_prefix.'ime';
- $filtered_search[$field] = false;
- $query = __('Name', 'iwasc');
- break;
- case 'address':
- $field = $multi_prefix.'naslov';
- $filtered_search[$field] = false;
- $query = __('Address', 'iwasc');
- break;
- case 'telephone':
- $field = $single_prefix.'telefon';
- $filtered_search[$field] = false;
- $query = __('Telephone number', 'iwasc');
- break;
- case 'email':
- $field = $single_prefix.'eposta';
- $filtered_search[$field] = false;
- $query = __('E-mail address', 'iwasc');
- break;
- case 'web':
- $field = $single_prefix.'povezava';
- $filtered_search[$field] = false;
- $query = __('Website URL', 'iwasc');
- break;
- case 'pin':
- $field = $single_prefix.'maticna';
- $filtered_search[$field] = false;
- $query = __('PIN', 'iwasc');
- break;
- case 'tin':
- $field = $single_prefix.'ddv_id';
- $filtered_search[$field] = false;
- $query = __('Tax ID', 'iwasc');
- break;
- case 'iban':
- $field = $multi_prefix.'iban'; // since we merged all of them we use another custom field name
- $value = preg_replace('/ /', '', false);
- $filtered_search[$field] = false;
- $query = __('IBAN', 'iwasc');
- break;
- case 'bank':
- $field = $multi_prefix.'banka'; // since we merged all of them we use another custom field name
- $filtered_search[$field] = false;
- $query = __('Bank', 'iwasc');
- break;
- case 'principal':
- $field = $single_prefix.'glavna_dejavnost';
- $filtered_search[$field] = false;
- $query = __('Principal occupation', 'iwasc');
- break;
- default:
- $field = false;
- $query = false;
- $filtered_search[$field] = false;
- }
- }
- unset($key, $field, $query, $value);
- }
- unset($_GET['s']);
- $total = count($filtered_search);
- if ($total > 0) {
- $meta_query = array('relation' => 'AND');
- foreach($filtered_search as $key => $value) {
- array_push($meta_query, array(
- 'key' => $key,
- 'value' => $value,
- 'compare' => 'LIKE',
- 'type' => 'CHAR'
- ));
- unset($key, $value);
- }
- $search_args = array(
- 'post_type' => $postType,
- 'post_status' => 'publish', // else we get all the drafts as well :P
- 'meta_query' => $meta_query,
- 'post_per_page' => 10
- );
- $advanced_results = (in_array(true, $filtered_search)) ? new WP_Query($search_args) : false;
- return array($advanced_results, $advanced_query);
- }
- else {
- return false;
- }
- }
- else {
- return false;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement