Обновление полей ACF
Использую плагин Advanced Custom Fields. Как заставить работать функцию update_sub_field()? Есть subfields в основном поле с селектором main_specifications, пытаюсь их программно обновить, то есть добавить значения,но ничего не выходит. Причем вывести их получается, а вот обновить никак.

function some_field_update(){
if( have_rows('main_specifications', 20735) ):
while ( have_rows('main_specifications', 20735) ) : the_row();
echo get_sub_field('colors') . '<br>';
if (update_sub_field('colors', 'some value', 20735)){
echo 'successful';
}else{
echo 'false';
}
endwhile;
else :
echo 'no rows found';
endif;
}
add_action('init', 'some_field_update');
Ответы (1 шт):
Автор решения: phpred
→ Ссылка
Решить получилось только с помощью update_post_meta
Заметил что subfields просто имеют префикс в своем названии, то есть если например поле имеет ярлык main_specifications а дочернее к нему поле colors, то в итоге у этого вложенного поля будет идентификатор main_specifications_colors, в итоге написал примерно следующий код:
function some_field_update(){
$my_posts = new WP_Query;
// делаем запрос
$myposts = $my_posts->query( array(
'post_type' => 'product',
'posts_per_page' => 10000,
) );
// обрабатываем результат
foreach( $myposts as $pst ){
if ($pst){
update_post_meta($pst->ID, 'main_specifications_colors', get_post_meta($pst->ID, 'colors')[0]);
}
}
}
add_action('init', 'some_field_update');