Ottenere dati da un ID posizione Google serve a reperire informazioni da un'attività su Google Places e Google Maps; ad esempio recensioni, orari di apertura o indirizzo e mostrarle su schermo oppure utilizzarle per calcolare un determinato risultato. Tenere presente che le recensioni ottenute saranno fino a 5.
Requisiti
Ottenere parametri base
La prima cosa da fare obbligatoriamente è ottenere i parametri da passare poi all'interno della funzione di chiamata alle API di Google:
Ottenere Place ID
Andare alla pagina di documentazione Google e inserire nel campo apposito il nome dell'attività, verrà ottenuto il Place ID. Segnarlo da parte.
Ottenere API key
Andare alla Google cloud platform e seguire questi passaggi:
- fare il login
- creare un progetto e selezionarlo
- andare alla pagina API e servizi
- cliccare su +ABILITA API E SERVIZI
- cercare places api nel campo di ricerca
- cliccare su abilita
- cliccare su gestisci oppure ritornare alla pagina API e servizi e cliccare su credenziali
- cliccare su +CREA CREDENZIALI, Chiave API
- segnarla da parte ed eventualmente limitarne l'utilizzo
GetPlaceId
Funzione php che esegue una richiesta all'endpoint Google per ottenere i dati della posizione e, se tutto ok, ritorna i dati da usare come si preferisce. Inserire la funzione in uno dei seguenti spazi:
- file functions.php - se la funzione viene usata in varie pagine del sito
- campo php (modulo aggiunte di codice) - se attivato il modulo e la funzione viene usata solo in una pagina
- blocco gutenberg php - se si vuole contenere tutto in un solo blocco
Parametri
Tre parametri Interni alla funzione:
- $placeid - stringa
- $key - stringa
- $language - stringa - default: 'it'
Return
Oggetto contenente i dati (se trovati) oppure false.
Funzione
function GetPlaceId() {
$placeid = 'INSERIRE PLACE ID';
$key = 'INSERIRE KEY';
$language = 'it' ;
$reviews_sort = 'most_relevant'; //oppure newest
$url = 'https://maps.googleapis.com/maps/api/place/details/json?placeid='.urlencode( $placeid ).'&reviews_sort='.$reviews_sort.'&key='.urlencode( $key );
if( !empty( $language ) ){ $url.='&language='.urlencode( $language ); }
$response = wp_remote_get( $url );
if( is_wp_error( $response ) ){ return false; }
$body = wp_remote_retrieve_body( $response );
$data = json_decode( $body );
if( $data && isset( $data->result ) ){ return $data->result; }
else{ return false; }
}
Esempio
echo GetPlaceId()->name;