Quiero agregar un suscriptor a un grupo de interés a través de la API de MailChimp.
Esta es mi matriz $merge_vars
:
$merge_vars = array( 'GROUPINGS' => array( 0 => array( 'id' => 17385, // The group list ID 'groups' => "Test 123", // A test group, that does exist ) ) );
Y así es como estoy actualizando el miembro:
$update = $mc->lists->updateMember(self::$mainListID, $email, $merge_vars);
Aquí hay un var_dump($merge_vars)
:
array(1) { ["GROUPINGS"]=> array(1) { [0]=> array(2) { ["id"]=> int(17385) ["groups"]=> string(8) "Test 123" } } }
y $email
es una estructura, aquí está $var_dump($email)
:
array(1) { ["email"]=> string(11) "my@mail.com" }
Estoy a punto de ser conducido a la distracción, porque la API no devuelve un error, todo parece ir bien, excepto por el gran problema del usuario que no se agrega a la lista.
He analizado esta pregunta que me ayudó a llegar tan lejos, pero la versión de la API que utiliza es 1.3 y podría tener algo que ver con eso.
¿Qué estoy haciendo mal?
Bueno, lo descubrí.
Aunque hubiera jurado que ya lo había intentado de esta manera … los grupos tienen que ser una matriz, incluso para un solo grupo.
Mi código ahora:
$merge_vars = array( 'GROUPINGS'=> array( array( 'id' => 17385, 'groups' => array($post['listName']) ) ) ); $mc->lists->updateMember(self::$mainListID, $email, $merge_vars);
Funciona perfectamente.
Para mi trabaja usando nombre en lugar de id grupo.
$merge_vars = array( 'groupings'=> array( array( 'name' => 'Group Name', 'groups' => array('Group item name') ) ) );
De acuerdo con @Sanaco
agregar este ejemplo para más casillas de verificación
$option1=$_POST['xxxx']; $option2=$_POST['xxxx']; $option3=$_POST['xxxx']; 'GROUPINGS'=> array( array( 'id' => 123456, 'groups' => array($option1, $option2, $option3) ) )