2013-08-26 9 views
6

Ich möchte über die MailChimp-API einen Teilnehmer zu einer Interessengruppe hinzufügen.Benutzer per MailChimp API zur Interessengruppe hinzufügen v2.0

Das ist mein $merge_vars Array:

$merge_vars = array(
    'GROUPINGS' => array(
     0 => array(
      'id' => 17385, // The group list ID 
      'groups' => "Test 123", // A test group, that does exist 
     ) 
    ) 
);    

und das ist, wie ich das Mitglied bin Aktualisierung:

$update = $mc->lists->updateMember(self::$mainListID, $email, $merge_vars); 

hier ein var_dump($merge_vars):

array(1) { 
    ["GROUPINGS"]=> 
    array(1) { 
    [0]=> 
    array(2) { 
     ["id"]=> 
     int(17385) 
     ["groups"]=> 
     string(8) "Test 123" 
    } 
    } 
} 

und $email ist ein struct, hier ist $var_dump($email):

array(1) { 
    ["email"]=> 
    string(11) "[email protected]" 
} 

Ich bin zu Ablenkung angetrieben werden, da die API keinen Fehler zurückgibt, scheint alles glatt zu gehen, bis auf das große Problem des Benutzers nicht in die Liste aufgenommen zu werden.

Ich habe mir this question angesehen, was mir geholfen hat, so weit zu kommen, aber die Version der API, die es verwendet, ist 1.3 und das könnte etwas damit zu tun haben.

Was mache ich falsch?

Antwort

14

Nun, ich habe es herausgefunden.

Obwohl ich hätte geschworen hätte ich es schon so versucht ... die Gruppen müssen ein Array sein, auch für eine einzelne Gruppe.

Mein Code jetzt:

$merge_vars = array(
    'GROUPINGS'=> array(
     array(
      'id' => 17385, 
      'groups' => array($post['listName']) 
     ) 
    ) 
); 

$mc->lists->updateMember(self::$mainListID, $email, $merge_vars); 

perfekt funktioniert.

+0

ich mit diesem zu stecken bin - aber es scheint mir, wie Ihre Frage bereits die Gruppen als Array hatte, mit einem einzigen Gruppe nach innen. – Paul

+1

Aah. Ok, die Liste der Gruppeneinträge selbst sollte kein Array sein, sie sollten eine durch Kommata getrennte Liste sein. Ich bin überrascht, dass das funktioniert hat. – Paul

+0

Welche Version der API verwenden Sie? Es könnte sich geändert haben. – Sacha

1

Vereinbaren Sie mit @Sanaco

hinzufügen, um dieses Beispiel für mehr Kontrollkästchen

$option1=$_POST['xxxx']; 
$option2=$_POST['xxxx']; 
$option3=$_POST['xxxx']; 

'GROUPINGS'=> array(
          array(
           'id' => 123456, 
           'groups' => array($option1, $option2, $option3) 
          ) 
         )