/**
  * getMembersSync
  * Method to retrieve all members from MC list.
  * 
  * @return false in case of an error, or an array of members and info.
  */
 public static function getMembersSync()
 {
     global $CFG;
     require_once $CFG->dirroot . '/blocks/mailchimp/classes/MailChimp.php';
     if (!isset($CFG->block_mailchimp_apicode) | !isset($CFG->block_mailchimp_listid)) {
         debugging("ERROR: API key or mailing list is not set.");
         return false;
     }
     $args['offset'] = '0';
     $args['count'] = '367';
     //Fails if more than 367
     $args['fields'] = "members.id,members.email_address,total_items,members.email_type,members.status,members.last_changed,members.merge_fields,members.interests,total_items";
     //Takes about 3 minutes with 367 count and 27408 members.
     $method = "lists/" . $CFG->block_mailchimp_listid . "/members";
     if (!($api = new \DrewM\MailChimp\MailChimp($CFG->block_mailchimp_apicode))) {
         debugging("ERROR: Unable to create mailchimp wrapper object \\DrewM\\MailChimp\\MailChimp.");
         return false;
     }
     echo "Getting list of mailing list members.\n";
     $newmemberlist['members'] = true;
     while (!empty($newmemberlist['members'])) {
         $newmemberlist = $api->get($method, $args);
         if (!$newmemberlist) {
             debugging("ERROR: Unable to get member list from mailchimp, method: " . $method);
             $memberlist = false;
             return false;
         }
         if (!empty($memberlist['members'])) {
             $memberlist['members'] = array_merge($memberlist['members'], $newmemberlist['members']);
         } else {
             $memberlist = $newmemberlist;
         }
         $args['offset'] += $args['count'];
     }
     if (!count($memberlist['members']) > 0) {
         debugging("ERROR: No members present in the mailchimp list. Unable to synchronize users.");
         return false;
     }
     echo "Returned with " . $memberlist['total_items'] . " members.\n";
     return $memberlist;
 }