WordPress Search engine google place Api

I want to create search form (in WordPress) with Google Place Api, where you can type city or state or zip-code. In the search results page I have had more advanced form with 2 fields (city or state or zip-code input, select with taxonomy “services”)

So I create Custom Post Type “Shop” with taxonomies (“state” and “services”).

Read More

For example
– CPT post: “Shop Name”
– State: “Illinois”
– Services: “Service 1”, “Service 2”

I’ve created searchform.php file (simple form with one field):
pastebin.com/cUPd2SWS

File search.php contains second, more advanced form (two fields):
pastebin.com/N7u18b2y

Javascript function to set value in hidden field

var state = document.getElementById('state');
var stateData = document.getElementById('s');
var options = {
    componentRestrictions: {
        country: 'us'
    }
};

var autocomplete = new google.maps.places.Autocomplete(state, options);

autocomplete.addListener('place_changed', function() {
    var place = autocomplete.getPlace();

    if (place.geometry) {
        stateData.value = place.place_id + ':' + place.geometry.location.lat() + ':' + place.geometry.location.lng();
    } else {
        stateData.value = '';
    }
});

Now in functions.php file I created sql query:
http://pastebin.com/iNtPdn95

When I type in search for example only state by text (without autocomplete) I have correct results.

But when I type for example city “Chicago” and select autocomplete “Chicago, Illinois, United State” my results is wrong

I var_dump WP_Query object on search results page

test.dev/?s=ChIJ7cv00DwsDogRAMDACa2m4K8%3A41.8781136%3A-87.62979819999998&state=Chicago%2C+Illinois%2C+United+State

WP_Query object
http://pastebin.com/9Lzf8Pbd

I think that problem is in public ‘tax_query’ array.
How Can I resolve this that state taxonomy select only state.

And how can I select state when user send zip-code (without autocomplete)?

Related posts