update_post_meta funktioniert nicht in save_post

Ich habe ein Problem mit einer function, die ich erstellen möchte. Es sollte einfach sein. Wenn jemand einen Beitrag speichert, schnapp dir die Stadt / Adresse / Provinz und konvertiere ihn in lang / lat und speichere ihn in der database. Das Problem ist, dass ich “update_post_meta” nicht zum arbeiten bekomme und ich verstehe nicht warum.

Der Code ist unten, es ist einfach genug.

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); } } 

ein paar Dinge, um die offensichtlichen Fehler zu beseitigen.

  • Ja, der Post-Typ ist ‘Dealer’ – diese function wird korrekt ausgeführt.
  • Jede der Variablen ist richtig eingestellt, ich habe mit einem var_dump bestätigt, dass sie alle gesetzt sind und die richtigen Details geben.
  • Die function get_coordinates funktioniert ebenfalls ordnungsgemäß und gibt die richtige Rückgabe zurück.
  • das update_post_meta wird erreicht – das lat / long ist leer (es existiert kein Eintrag dafür in der DB)

Ich verstehe nicht, was los ist, alles, was ich sehe, scheint zu suggerieren, dass das funktionieren sollte.

Solutions Collecting From Web of "update_post_meta funktioniert nicht in save_post"

Ein bisschen spät, aber ich hatte gerade dieses Problem, bei dem das Hinzufügen eines Taxonomie-Begriffs funktionierte, aber das Hinzufügen von Post-Meta war nicht. Die Lösung sollte eine höhere Priorität haben. Die Standardpriorität ist 10, also versuchen Sie es mit der Instanzpriorität 100:

 add_action( 'save_post_dealer', 'save_dealer_long_lat', 100, 1);