Esempio n. 1
0
 /**
  * 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";
 }