function mcProcessQueue($recnum = 10, $tries = 5)
 {
     $WishlistAPIQueueInstance = new WishlistAPIQueue();
     $last_process = get_option("WLM_MailchimpAPI_LastProcess");
     $current_time = time();
     $tries = $tries > 1 ? (int) $tries : 5;
     $error = false;
     //lets process every 10 seconds
     if (!$last_process || $current_time - $last_process > 10) {
         $queues = $WishlistAPIQueueInstance->get_queue("mailchimp", $recnum, $tries, "tries,name");
         foreach ($queues as $queue) {
             $data = maybe_unserialize($queue->value);
             if ($data['action'] == 'subscribe') {
                 $res = $this->mcListSubscribe($data['apikey'], $data['listID'], $data['email'], $data['mergevars'], $data['optin'], $data['update_existing'], $data['replace_interests']);
             } elseif ($data['action'] == 'unsubscribe') {
                 $res = $this->mcListUnsubscribe($data['apikey'], $data['listID'], $data['email'], $data['delete_member']);
             }
             if (isset($res['error'])) {
                 $res['error'] = strip_tags($res['error']);
                 $res['error'] = str_replace(array("\n", "\t", "\r"), '', $res['error']);
                 $d = array('notes' => "{$res['code']}:{$res['error']}", 'tries' => $queue->tries + 1);
                 $WishlistAPIQueueInstance->update_queue($queue->ID, $d);
                 $error = true;
             } else {
                 $WishlistAPIQueueInstance->delete_queue($queue->ID);
                 $error = false;
             }
         }
         //save the last processing time when error has occured on last transaction
         if ($error) {
             $current_time = time();
             if ($last_process) {
                 update_option("WLM_MailchimpAPI_LastProcess", $current_time);
             } else {
                 add_option("WLM_MailchimpAPI_LastProcess", $current_time);
             }
         }
     }
 }
 public function ifscProcessQueue($recnum = 10, $tries = 5)
 {
     global $WishListMemberInstance;
     $txnids = $WishListMemberInstance->GetMembershipLevelsTxnIDs(9);
     $WishlistAPIQueueInstance = new WishlistAPIQueue();
     $last_process = get_option("WLM_InfusionsoftSCAPI_LastProcess");
     $current_time = time();
     $tries = $tries > 1 ? (int) $tries : 5;
     $error = false;
     //lets process every 10 seconds
     if (!$last_process || $current_time - $last_process > 10) {
         $queues = $WishlistAPIQueueInstance->get_queue("infusionsoftsc", $recnum, $tries, "tries,name");
         foreach ($queues as $queue) {
             $data = maybe_unserialize($queue->value);
             if ($data['action'] == 'new') {
                 $res = $this->NewUserTagsHook($data['uid'], $data['data']);
             } elseif ($data['action'] == 'add') {
                 $res = $this->AddUserTagsHook($data['uid'], $data['levels']);
             } elseif ($data['action'] == 'remove') {
                 $res = $this->RemoveUserTagsHook($data['uid'], $data['levels']);
             } elseif ($data['action'] == 'cancel') {
                 $res = $this->CancelUserTagsHook($data['uid'], $data['levels']);
             }
             if (isset($res['errstr'])) {
                 $res['error'] = strip_tags($res['errstr']);
                 $res['error'] = str_replace(array("\n", "\t", "\r"), '', $res['error']);
                 $d = array('notes' => "{$res['errno']}:{$res['error']}", 'tries' => $queue->tries + 1);
                 $WishlistAPIQueueInstance->update_queue($queue->ID, $d);
                 $error = true;
             } else {
                 $WishlistAPIQueueInstance->delete_queue($queue->ID);
                 $error = false;
             }
         }
         //save the last processing time when error has occured on last transaction
         if ($error) {
             $current_time = time();
             if ($last_process) {
                 update_option("WLM_InfusionsoftSCAPI_LastProcess", $current_time);
             } else {
                 add_option("WLM_InfusionsoftSCAPI_LastProcess", $current_time);
             }
         }
     }
 }