2013-08-26 4 views
6

Desidero aggiungere un sottoscrittore a un gruppo di interesse tramite l'API MailChimp.Aggiungere utenti al gruppo di interesse tramite MailChimp API v2.0

Questo è il mio $merge_vars matrice:

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

e questo è come sto aggiornando il membro:

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

Ecco un var_dump($merge_vars):

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

e $email è un struct, ecco $var_dump($email):

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

sto per essere guidato alla distrazione, perché l'API non restituisce un errore, tutto sembra andare liscio, tranne che per il grande problema del l'utente non viene aggiunto alla lista.

Ho guardato a this question che mi ha aiutato ad arrivare così lontano, ma la versione dell'API che usa è 1.3 e potrebbe avere qualcosa a che fare con esso.

Cosa sto sbagliando?

risposta

14

Beh, l'ho capito.

Anche se potrei avere giurato L'ho già provato in questo modo ... i gruppi devono essere un array, anche per un singolo gruppo.

Il mio codice ora:

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

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

funziona perfettamente.

+0

io sono bloccato con questo troppo - ma sembra a me come la tua domanda già aveva i gruppi come una matrice, con un unico gruppo dentro – Paul

+1

Aah. Ok, l'elenco delle voci di gruppo non dovrebbe essere un array, dovrebbero essere un elenco delimitato da virgole. Sono sorpreso che questo ha funzionato. – Paul

+0

Quale versione dell'API stai usando? Potrebbe essere cambiato. – Sacha

1

d'accordo con @Sanaco

aggiungere questo esempio per ulteriori caselle

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

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