Integrar mailchimp con drupal usando un webform 6.3.x (Actualización)

En una entrada anterior les mostraba la forma de integrar un Webform de drupal y Mailchimp, pero desde la versión 6.3.x del módulo webforms ya no se incluye el apartado “Additional Processing” y por tal motivo se hace necesario crear un módulo que modifique el comportamiento del formulario hecho con webform.

Los pasos que deben seguir son:

  • Instalar el módulo Mailchimp. (Asumo que ya tienen una cuenta de Mailchimp y lo han configurado correctamente)
  • Instalar el módulo Devel. (Para trabajar comodamente con nuestro nuevo módulo)
  • Instalar el módulo Webform.
  • Crear el formulario que va a capturar los datos del usuario (email, nombre, …).
  • Crear un módulo que modifique el formulario anterior.

Yo uso un módulo que he llamado customsite y su contenido es como sigue:

En el archivo customsite.info

name = Custom Site functions
description = Custom functions for this site.
core = 6.x
version = "6.x-1.0"

En el archivo customsite.module

<?php
// $Id: customsite.module

/**
* @file
* Custom functions for this site.
*/

function customsite_form_alter(&$form, &$form_state, $form_id) {
  // Descomentar la siguiente linea para determinar el ID del formulario
  // dsm($form_id);
  if($form_id == 'webform_client_form_7') {
    $form['#submit'][] = 'customsite_mysubmit';
  }
}

function customsite_mysubmit($form, &$form_state) {
  // Descomentar la siguiente linea para determinar la estructura de los campos del formulario 
	// dsm($form);
	$data = variable_get( 'mailchimp_lists', NULL);
  	$lists = array();
  	if (!empty($data)) {
    	$lists = unserialize($data);
    	foreach ($lists as $l) {
      		$list = $l;
      		break;
    	}
    	
  		$values = array();
	    $values['FNAME'] = $form['submitted']['nombres']['#value'];
	    $values['LNAME'] = $form['submitted']['apellidos']['#value'];
	    $values['EMAIL'] = $form['submitted']['email']['#value']; 
	    
	    $success = _mailchimp_subscribe_user($list, $values['EMAIL'], $values);
  	}
}

como pueden ver se hace uso del hook form_alter para llamar a la función customsite_mysubmit  donde se hace uso de la función _mailchimp_subscribe_user.

Comentarios

Enviar un comentario nuevo

El contenido de este campo se mantiene privado y no se mostrará públicamente.
By submitting this form, you accept the Mollom privacy policy.