@pilolin
HTML программист

Как обновить поля по расписанию, раз в заданное время?

Имеется кастомный тип записи в котором хранятся 14 записей, (первая неделя с ПН по ВС и вторая неделя с ПН по ВС) у каждой записи есть поле "номер недели" - 1 или 2, а также используя acf создан repeater, который в строке имеет название и 2 числовых поля, первое постоянно меняется, а второе поле - поле к которому нужно привести значение первого поля по расписанию (например, раз в час). Использую wp_cron, получилось что то такое.
$parameters = array(
	'post_type_schedule' => 'schedule'
);
if( !wp_next_scheduled( 'hook_update_schedule_everyweek',  $parameters ) )
	wp_schedule_event( time(), 'user_everyweek', 'hook_update_schedule_everyweek', $parameters );

add_action( 'hook_update_schedule_everyweek', 'update_schedule', 99, 1 );

function update_schedule( $post_type_schedule) {
  // здесь получаю 7 из 14 постов где номер недели предыдущий (в данном случае 1)
  $prev_week = 1;
	$posts_last_week = new WP_Query(array(
		'post_type' => 'schedule',
		'posts_per_page' => -1,
		'meta_query' => array(
			array(
				'key' => 'number-week',
				'value' => $prev_week
			)
		)
	));
	// дальше нужно каким то образом пробежаться по массиву всех строк по всем постам и заменить значение
   // взяв из count в той же строке и записать в remain
	foreach ($posts_last_week->$posts as $post_i => $post) {
		setup_postdata($post);
		while (have_rows('schedules', $post->ID)) {
			the_row();
			$count = get_sub_field('count');
			update_sub_field('remain', $count);
		}
	} 
	wp_reset_postdata();
}


Использую плагин acf, то ли не разобрался как обновлять поля в репитере, то ли так делать вообще нельзя с помощью его методов. Подскажите как можно это сделать?
  • Вопрос задан
  • 47 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

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