public function update_subscription($listMailChimpID, $subStatus) { $Lists = new PerchMailChimp_Lists($this->api); $List = $Lists->get_one_by('listMailChimpID', $listMailChimpID); if (!is_object($List)) { return false; } $Subscriptions = new PerchMailChimp_Subscriptions($this->api); $Subscription = $Subscriptions->find_subscription($List, $this); if (is_object($Subscription)) { $Subscription->update(['subStatus' => $subStatus, 'subUpdated' => date('Y-m-d H:i:s')]); return true; } return false; }
public function lookup_and_create(array $data) { if ($this->remote_subscriber_exists_locally($data['id'])) { return $this->get_one_by('subscriberMailChimpID', $data['id']); } $Lists = new PerchMailChimp_Lists($this->api); $List = $Lists->get_one_by('listMailChimpID', $data['list_id']); if (!is_object($List)) { return false; } $MailChimpAPI = $this->get_api_instance(); $listID = $List->listMailChimpID(); $hash = $MailChimpAPI->subscriberHash($data['email']); $member = $MailChimpAPI->get("lists/{$listID}/members/{$hash}"); if ($MailChimpAPI->success()) { $Subscriptions = new PerchMailChimp_Subscriptions($this->api); $sub_data = $this->map_fields($member); $sub_data['subscriberCreated'] = date('Y-m-d H:i:s'); $Subscriber = $this->create($sub_data); if ($Subscriber) { // create subscription $Subscriptions->create_from_import($List, $Subscriber, $member); } } }