API от минфина — https://minfin.com.ua/help/api/mb/
И так, с начало заполняем форму регистрации (ссылка на API) и отправляем. Это нужно для получения ключа.
После, если запрос прошел успешно и вас одобрили, на почту придет письмо с ключем, которое будем использовать в запросах.
Далее добавляем в файл functions.php своей темы новую функцию
function MinfinGetCursVal(){ $url= 'http://api.minfin.com.ua/nbu/ваш_ключ/'; ini_set(″user_agent″,″[текст user-agent]″); $site = file_get_contents($url); # Получить объект $json_obj = json_decode($site, true); return $json_obj; }
Данная функция получает курсы валют НБУ, можно приспособить и для других запросов. На выходе имеем массив JSON.
И уже в шаблоне использовать вывод, например так
$json_curs = MinfinGetCursVal(); if (!empty($json_curs)){ $a1 = 'usd'; $ask = (isset($json_curs[$a1]['ask'])) ? $json_curs[$a1]['ask'] : ''; $bid = (isset($json_curs[$a1]['bid'])) ? $json_curs[$a1]['bid'] : ''; $date_val = (isset($json_curs[$a1]['date'])) ? $json_curs[$a1]['date'] : ''; if (!empty($ask)){ // обновляю данные update_post_meta($post_id, 'покупка_ask', $ask); update_post_meta($post_id, 'продажа_bid', $bid); update_post_meta($post_id, 'дата_вал', $date_val); } }
В данном примере идет получение курса USD и обновление произвольных полей которые хранят данный курс для вывода на сайте.
Интересный момент, по выходным запрос на получения курса не срабатывает, по этому чтоб сайт не «ложился» надо хранить курс и если в запросе пусто но выводить из произвольного поля либо из ранее сохраненного места.
Это ответ от службы поддержки
«Обращаем внимание, что пустой массив данных по курсам НБУ Вы можете получать в выходные и нерабочие дни.»
Сколько раз Нацбанку еще нужно будет наступать на валютные грабли, чтобы делать оперативные выводы и не допускать очередных курсовых пожаров — непонятно. Но эксперименты с экономикой и так небогатой страны с обнищавшим до края населением — чреваты. Жаль, что не сами чиновники из своего кармана рассчитываются за такие опыты.