Использование ACF для получения данных о широте и долготе на основе другой адресной информации?

Итак, я создал поля AFC для почтового адреса, города, штата и почтового индекса, а затем использую Google Maps, чтобы получить информацию из этих полей, а затем заполнить два других поля ACF с помощью широты и долготы для этого адреса. Проблема, с которой я сталкиваюсь, заключается в том, что когда я ввожу поля адреса и нажимаю кнопку публикации / обновления, он не сразу захватывает широту / долготу. Когда я щелкаю по нему второй раз, он захватывает широту / долготу и заполняет эти поля ACF. Это происходит только тогда, когда я добавляю новый адрес. Если я использую адрес, который уже использовался в другом сообщении, и повторно использую тот же адрес для нового сообщения, он получает широту / долготу с первой попытки. Исходя из этого, я предполагаю, что первый щелчок захватывает широту / долготу, а второй щелчок используется для заполнения полей широты / долготы.

Но мне нужно сделать так, чтобы оба этих шага (захват широты / долготы и заполнение полей широты / долготы) выполнялись при одном и том же нажатии кнопки публикации / обновления. Ниже приведен код, который я использую в настоящее время:

add_action( 'post_submitbox_start', 'qd_fake_publish_button' );

function qd_fake_publish_button()
{
  $screen = get_current_screen();
  if ( ($screen->parent_base == 'edit') && ( $screen->id == 'opportunity' ))
  {
    print '<button id = "acquireLatLong" class = "button button-primary button-large">Publish</button>';
  }
}
add_action( 'admin_print_footer_scripts', 'project_pins_save_post', 11);

function project_pins_save_post() {
  $screen = get_current_screen();
  if ( ($screen->parent_base == 'edit') && ( $screen->id == 'opportunity' ))
  {
    $script = '
    <script type = "text/javascript" src = "MY_GOOGLE_API_KEY"></script>

    <script type = "text/javascript">
      function AcquireLatLont() {
        var mygc = new google.maps.Geocoder();
        var qd_street = document.getElementById("acf-field_5abe83dfda81b").value;
        var qd_city = document.getElementById("acf-field_5abe4bea43cc3").value;
        var qd_state = document.getElementById("acf-field_5abe4bf543cc4").value;
        var qd_zip = document.getElementById("acf-field_5abe4bfb43cc5").value;
        var address = qd_street + ", " + qd_city + ", " + qd_state + " " + qd_zip;
        mygc.geocode({ "address": address }, function (results, status) {
          if (status == google.maps.GeocoderStatus.OK) {
            document.getElementById("acf-field_5abe845fda81c").value = results[0].geometry.location.lat();
            document.getElementById("acf-field_5abe846ada81d").value = results[0].geometry.location.lng();
            document.getElementById("publish").click();
          } else {
            alert("Geocoder failed due to: " + status);
          }
        });
        return false;
      }
    </script>
    <script type = "text/javascript" >
      jQuery( document ).ready(function( $ ) {
        $("#acquireLatLong")[0].textContent = $("#publish")[0].value;
        $("#acquireLatLong").click(function() {

            AcquireLatLont();

        });
      });
    </script>
    ';
    echo $script;
  }
}

Раньше я не работал с динамическим заполнением полей ACF, поэтому не уверен, где этот фрагмент кода испорчен.

Почему вы не используете поле ACF Google Map? Он фиксирует все это для вас.

Aibrean 20.05.2018 20:21
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
1
31
0

Другие вопросы по теме