/** * Sync a player on Mailchimp * @return [type] [description] */ private function syncPlayerMailchimp() { if (!isset($this->meta['mailchimp']['apiKey']) || $this->meta['mailchimp']['apiKey'] == '' || !isset($this->meta['mailchimp']['listId']) || $this->meta['mailchimp']['listId'] == '') { echo 'Error: need more mailchimp parameters.'; return; } // Mailchimp Field Name $firstNameField = isset($this->meta['mailchimp']['firstNameField']) ? $this->meta['mailchimp']['firstNameField'] : 'FNAME'; $resultField = isset($this->meta['mailchimp']['resultField']) ? $this->meta['mailchimp']['resultField'] : 'RESULT'; $statusDoubleOptin = isset($this->meta['mailchimp']['doubleOptin']) && $this->meta['mailchimp']['doubleOptin'] == 1 ? 'pending' : 'subscribed'; // Connect to mailchimp try { $mc = new Mailchimp\Mailchimp($this->meta['mailchimp']['apiKey']); } catch (Exception $e) { echo "Can't connect to MC."; return; } // Post to add member try { $jsonReturn = $mc->post("lists/{$this->meta['mailchimp']['listId']}/members", array('email_address' => $this->playerData['email'], 'status' => $statusDoubleOptin, 'merge_fields' => array($firstNameField => $this->playerData['nickname'], $resultField => $this->playerData['result']))); } catch (Exception $e) { echo "Can't add to MC."; return; } $jsonReturn = json_decode($jsonReturn); echo $jsonReturn->id; }
public function getValueFromData($data) { $subscribe = isset($data[$this->Name]); if ($subscribe) { try { $mc = new \Mailchimp\Mailchimp($this->config()->get('api_key')); $request = $mc->post('lists/' . $this->getSetting('ListID') . '/members', ["email_address" => $data[$this->getSetting('EmailField')], "status" => "subscribed", "merge_fields" => ["FNAME" => $data[$this->getSetting('FirstNameField')], "LNAME" => $data[$this->getSetting('LastNameField')]]]); return 'Subscribed'; } catch (Exception $e) { return 'Failed (' . json_decode($e->getMessage())->detail . ')'; } } return "No"; }