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); } } } }