Здравствуйте. Имеется такой сценарий.
Необходимо обновлять ежедневно дату. Значение даты выводится с помощью custom field плагина ACF.
Но значение обновляется только тогда когда я в админке в настройке кастомных полей нажму кнопку Обновить.
А мне необходимо чтобы оно обновлялось моментально как только наступит следующий день. Без моего вмешательства.
Есть у меня такой код, может я не правильно хук прописываю? может надо не init использовать а что то другое?
Что здесь происходит?
Делается запрос к json файлу в котором актуальные значения и они записываются в поля.
Обновление происходит ежедневно с помощью cron.
Но проблема в том что пока я не зайду в админку и не нажму кнопку Обновить данные не обновятся.
Буду признателен за любую помощь.
/*
* Schedule update offers info ACF every day
*/
if(! wp_next_scheduled('update_offers_list')) {
wp_schedule_event(time(), 'daily', 'update_offers_list');
}
add_action('update_offers_list', 'acf_json_offers_info');
/*
* Get offers info values from json into ACF
*/
add_action('init', 'acf_json_offers_info');
function acf_json_offers_info() {
$post_id = pll_current_language('slug');
$today = date('d.m.y');
$offers_field = get_field('count', $post_id);
$date = get_field('update_at', $post_id);
$json_request = wp_remote_get('https://site.loc/config/count.json');
$json_body = wp_remote_retrieve_body( $json_request );
$json_data = json_decode( $json_body );
if(!$json_data) {
$json_data = (object)[
"count" => "30",
"updated_at" => $today,
];
}
if($json_data->updated_at >= $date) {
$fields = array(
'field_6152a0518a1d3' => $json_data->count,
'field_6152cdf344232' => $json_data->updated_at,
);
foreach ($fields as $field => $value) {
update_field($field, $value, $post_id);
}
}
}