Wordpress: страница параметров Polylang и ACF для вызовов ajax принимает значение языка по умолчанию

Я работаю над многоязычным сайтом. Мы используем Polylang и плагин настраиваемых полей ACF.

В целом работает нормально, проблема связана со страницами параметров ACF. Страницы опций также переведены на разные языки.

Контент, который мы получаем оттуда, отображается в соответствии с переводом - на английском на английской версии страницы, на французском на французском и т. Д.

Проблема: у нас есть форма для связи с нами, в которой мы берем адрес электронной почты получателя со страниц параметров ACF. (Мы хотим отправить его другому получателю, если он на другом языке.)

Здесь всегда берется адрес электронной почты со страницы параметров языка по умолчанию, и я не понимаю почему.

Мы берем получателя электронной почты для вызова ajax с помощью команды get field, как на страницах, отображающих контент:

 get_field('service_email', 'option' );

У кого-нибудь есть идея, что могло вызвать это? Или где смотреть?


person RincewindAssoc    schedule 04.12.2018    source источник


Ответы (1)


В конце концов мы нашли решение. Потребовалось немного покопаться, но я надеюсь, что это поможет, если кто-то столкнется с той же проблемой.

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

// Translating Options Page Compatibility
// add filter with the path to your acf installation
add_filter('acf/settings/default_language', 'my_settings_default_language');
add_filter('acf/settings/current_language', 'my_settings_current_language');

function my_settings_default_language( $lang ) {
if($lang == "") {
    $lang = pll_default_language(); // pll_ is a polylang function
  }
  return $lang;
}

function jfrog_settings_current_language( $lang ) {
   $lang = pll_current_language();
   return $lang;
}

Боковое примечание: мы используем версию ACF с установленной темой.

надеюсь, это поможет, ура

person RincewindAssoc    schedule 01.04.2019