/**
* Get an array of list_id => number of subscribers
*
* @return array
*/
public function get_subscriber_counts()
{
// get from transient
$list_counts = get_transient('mc4wp_list_counts');
if (is_array($list_counts)) {
return $list_counts;
}
// transient not valid, fetch from API
try {
$lists = $this->api->get_lists(array('count' => 100, 'fields' => 'lists.id,lists.stats'));
} catch (MC4WP_API_Exception $e) {
return array();
}
$list_counts = array();
// we got a valid response
foreach ($lists as $list) {
$list_counts["{$list->id}"] = $list->stats->member_count;
}
$seconds = 3600;
/**
* Filters the cache time for MailChimp lists configuration, in seconds. Defaults to 3600 seconds (1 hour).
*
* @since 2.0
* @param int $seconds
*/
$transient_lifetime = (int) apply_filters('mc4wp_lists_count_cache_time', $seconds);
set_transient('mc4wp_list_counts', $list_counts, $transient_lifetime);
// bail
return $list_counts;
}