J'ai un site
WordPress sur lequel je scrappe des offres d'emplois depuis un autre site et les insère dans des posts.
Je souhaite implanter la localisation des emplois dans un champ
Google Map de
Advanced Custom Field, mais malheureusement, le format des données de localisation scrappé
(text) ne convient pas pour un champ
Google Map.
À défaut de pouvoir envoyer directement la localisation scrappé dans mon champ
Google Map, j'ai décider d'envoyer la localisation scrappé dans un champ de type
text "job_s_location" et de convertir cette localisation en
géocode pour l'envoyer par la suite à mon champ
Google Map "job_location_field" .
Pour être plus clair:
Je souhaite que, à chaque fois qu'une donnée est entrée dans "job_s_location"
(Texte), elle soit automatiquement transférée sous un format de géolocalisation dans "job_location_field"
(Google Map).
J'ai essayé avec la fonction ci-dessous, mais rien ne fonctionne la localisation reste dans le champs de texte, et ne s'intègre pas à mon champ
Google map.
Code : Tout sélectionner
function update_job_location_field( $post_id ) {
// Vérifiez si le post est un job post
if ( get_post_type( $post_id ) !== 'job' ) {
return;
}
// Récupérer le nom de la ville et le nom du pays à partir du champ job_s_location
$location = get_field( 'job_s_location', $post_id );
$city_name = $location['city'];
$country_name = $location['country'];
// Création de l'adresse pour l'appel de l'API Google Maps
$address = $city_name . ', ' . $country_name;
// Appel de l'API Google Maps pour récupérer les coordonnées de la ville
$ur/l = '////////////////////////adresse-api-google///////////////////////:=' . urlencode( $address ) . '&key=MA-CLÉ-API';
$response = file_get_contents( $url );
$data = json_decode( $response );
if ( $data->status === 'OK' ) {
// Enregistrement des coordonnées géographiques dans le champ job_location_field
$lat = $data->results[0]->geometry->location->lat;
$lng = $data->results[0]->geometry->location->lng;
update_field( 'job_location_field', array( 'lat' => $lat, 'lng' => $lng ), $post_id );
}
}
add_action( 'acf/save_post', 'update_job_location_field', 20 );
( J'ai volontairement erroné l'adresse de l'API Google Maps pour pouvoir entrer ce code sur le site PhpFrance qui n'accepte pas les URL externe )
J'aurais besoin de votre aide pour trouver une solution à mon problème. Est-il possible d'automatiser le transfert de données du champ "job_s_location" au champ "job_location_field" en utilisant PHP ou une autre méthode? Si oui, comment puis-je le faire ?
Merci beaucoup pour votre aide.
NB: Si vous connaissez un plugin de scrapping qui possède une fonctionnalité de Géolocation, je suis également preneur. Merci
J'ai un site [b]WordPress[/b] sur lequel je scrappe des offres d'emplois depuis un autre site et les insère dans des posts.
Je souhaite implanter la localisation des emplois dans un champ [b]Google Map[/b] de [b]Advanced Custom Field[/b], mais malheureusement, le format des données de localisation scrappé [b](text)[/b] ne convient pas pour un champ [b]Google Map[/b].
À défaut de pouvoir envoyer directement la localisation scrappé dans mon champ [b]Google Map[/b], j'ai décider d'envoyer la localisation scrappé dans un champ de type [b]text[/b] "job_s_location" et de convertir cette localisation en [b]géocode[/b] pour l'envoyer par la suite à mon champ [b]Google Map[/b] "job_location_field" .
Pour être plus clair:
Je souhaite que, à chaque fois qu'une donnée est entrée dans "job_s_location" [b](Texte)[/b], elle soit automatiquement transférée sous un format de géolocalisation dans "job_location_field" [b](Google Map)[/b].
J'ai essayé avec la fonction ci-dessous, mais rien ne fonctionne la localisation reste dans le champs de texte, et ne s'intègre pas à mon champ [b]Google map[/b].
[code]
function update_job_location_field( $post_id ) {
// Vérifiez si le post est un job post
if ( get_post_type( $post_id ) !== 'job' ) {
return;
}
// Récupérer le nom de la ville et le nom du pays à partir du champ job_s_location
$location = get_field( 'job_s_location', $post_id );
$city_name = $location['city'];
$country_name = $location['country'];
// Création de l'adresse pour l'appel de l'API Google Maps
$address = $city_name . ', ' . $country_name;
// Appel de l'API Google Maps pour récupérer les coordonnées de la ville
$ur/l = '////////////////////////adresse-api-google///////////////////////:=' . urlencode( $address ) . '&key=MA-CLÉ-API';
$response = file_get_contents( $url );
$data = json_decode( $response );
if ( $data->status === 'OK' ) {
// Enregistrement des coordonnées géographiques dans le champ job_location_field
$lat = $data->results[0]->geometry->location->lat;
$lng = $data->results[0]->geometry->location->lng;
update_field( 'job_location_field', array( 'lat' => $lat, 'lng' => $lng ), $post_id );
}
}
add_action( 'acf/save_post', 'update_job_location_field', 20 );
[/code]
( J'ai volontairement erroné l'adresse de l'API Google Maps pour pouvoir entrer ce code sur le site PhpFrance qui n'accepte pas les URL externe )
J'aurais besoin de votre aide pour trouver une solution à mon problème. Est-il possible d'automatiser le transfert de données du champ "job_s_location" au champ "job_location_field" en utilisant PHP ou une autre méthode? Si oui, comment puis-je le faire ?
Merci beaucoup pour votre aide.
NB: Si vous connaissez un plugin de scrapping qui possède une fonctionnalité de Géolocation, je suis également preneur. Merci