Corona Virus Stats Shortcode
<?php
[add_shortcode](http://codex.wordpress.org/Function_Reference/add_shortcode)('coronavirus', 'get_corona_stats');
function get_corona_stats($atts, $content) {
$transient_name = 'corona_stats_';
$corona_stats = [];
if ( $maybe_transient_data = [get_transient](http://codex.wordpress.org/Function_Reference/get_transient)( $transient_name ) ) {
$corona_stats = $maybe_transient_data;
} else {
$source = [wp_remote_get](http://codex.wordpress.org/Function_Reference/wp_remote_get)('https://corona.lmao.ninja/all');
$remote_response = true;
if ( [is_wp_error](http://codex.wordpress.org/Function_Reference/is_wp_error)( $source ) ) {
$remote_response = null;
}
if ( 200 !== wp_remote_retrieve_response_code( $source ) ) {
$remote_response = null;
}
if ( ! $remote_response ) {
return [];
}
if ( ! isset( $source['body'] ) ) {
return [];
}
$json_data = json_decode( $source['body'], true );
if ( ! $json_data ) {
return [];
}
$corona_stats[] = [
'cases' => $json_data['cases'],
'deaths' => $json_data['deaths'],
'recovered' => $json_data['recovered'],
];
}
[set_transient](http://codex.wordpress.org/Function_Reference/set_transient)(
$transient_name,
$corona_stats,
1 * HOURS_IN_SECONDS
);
$content = sprintf('<h3>Corona Virus Stats</h3>
<p>Cases: %s</p>
<p>Deaths: %s</p>
<p>Recovered: %s</p>',
number_format($corona_stats[0]['cases']),
number_format($corona_stats[0]['deaths']),
number_format($corona_stats[0]['recovered'])
);
return $content;
}