J'ai un problème avec une fonction que j'essaie de créer. Ça devrait être simple. Lorsqu'une personne enregistre une publication, saisissez la ville/l'adresse/la province et convertissez-la en long/lat, puis enregistrez-la dans la base de données. Le problème est que je ne peux pas faire fonctionner "update_post_meta" et je ne comprends pas pourquoi.
Le code est ci-dessous, c'est assez simple.
add_action( 'save_post_dealer', 'save_dealer_long_lat');
function save_dealer_long_lat($post_id) {
$city = get_post_meta( $post_id, 'wpcf-dealer-city', true );
$address = get_post_meta( $post_id, 'wpcf-dealer-address', true );
$province = get_post_meta( $post_id, 'wpcf-dealer-province', true );
$coords = get_coordinates($city, $address, $province);
$lat = get_post_meta( $post_id, 'wpcf-latitude', true );
$long = get_post_meta( $post_id, 'wpcf-longitude', true );
if(empty($lat)) {
update_post_meta($post_id, 'wpcf-latitude', $coords['lat'], $lat);
}
if(empty($long)) {
update_post_meta($post_id, 'wpcf-longitude', $coords['long'], $long);
}
}
quelques choses pour éliminer les erreurs évidentes.
Je ne comprends pas ce qui se passe, tout ce que je vois semble suggérer que cela devrait fonctionner.
Un peu tard, mais je viens d'avoir ce problème où l'ajout d'un terme de taxonomie a fonctionné, mais l'ajout de méta-post n'était pas. La solution consistait à définir une priorité plus élevée. La priorité par défaut est 10, alors essayez par exemple la priorité 100:
add_action( 'save_post_dealer', 'save_dealer_long_lat', 100, 1);