Ребята привет.
Задумал такую логику реализовать, что через wp-cron необходимо на сайте обновлять ежедневно дату и количество офферов из файла json.
Вот что я сделал:
/*
* Обновление полей через wp-cron ежедневно
*/
if(! wp_next_scheduled('update_offers_list')) {
wp_schedule_event(time(), 'daily', 'update_offers_list');
}
add_action('update_offers_list', 'acf_json_offers_info');
/*
* Здесь я получаю данные и сравниваю их с датой в json файле, если вдруг какая-то ошибка то подставляю
*данные по дефолту
*/
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.com/json_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_61529c243fcf2' => $json_data->count,
'field_61529e8ca776d' => $json_data->count,
'field_61529c423fcf3' => $json_data->updated_at,
'field_61529e96a776e' => $json_data->updated_at,
);
foreach ($fields as $field => $value) {
update_field($field, $value, $post_id);
}
}
}
Я использую кастомные поля ACF для вывода данных. НО у меня не обновляются эти данные. По логике вроде все верно или где-то что-то не до глядел. Буду благодарен за любую помощь.
в файле json хранится следующая инфа:
{"count":"34","updated_at":"23.01.2022"}