alexsteel07
@alexsteel07
инженер

Как сделать автоматическое обновление значений поля в ACF?

Собственно есть сайт на котором есть 2 числовых поля цены в посте и одно поле как общее в опциях сайта
Одно поле это цена в USD а другое перещитывается по коэфициенту с опций сайта
Нашел решение которое работает при обновленнии самого поста но при смене коєфициента оновления не работет и в общем работает криво.
function my_acf_update_totalprice($post_id)
{
	$climit = floatval(get_field('course', 'option'));
    $total = get_field('priceusd') * $climit;
    $value = $total;
    $field_name = "price";
    update_field($field_name, $value, $post_id);
    update_sub_field($field_name, $value, $post_id);
}
add_action('save_post', 'my_acf_update_totalprice');


Возможно есть решение которое будет работать при смене coefficient менять значения в поле price без пересохранеия поста
  • Вопрос задан
  • 23 просмотра
Пригласить эксперта
Ответы на вопрос 2
@Hormet
Разве не проще цену не записывать в мета поле, а считать перед выводом? В скорости сильно не проиграет...
Или можно просто добавить регулярную задачу в cron, как вариант.

И еще один вариат нашол на форуме ACF, вот такой код
add_filter('acf/update_value/name=my_field_name', 'my_check_for_change', 10, 3);
function my_check_for_change($value, $post_id, $field) {
  $old_value = get_post_meta($post_id, 'my_field_name', true); //подставить название своего поля
  if ($old_value != $value) {
    // it changed (здесь ваш код для обновления полей)
  }
  return $value;
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы