ATENCIÓN AL CLIENTE: +34 923 199 148

Conectar Gravity Forms con MailPoet

Gravity Forms y Mailpoet son dos de mis plugins favoritos para hacer cada uno su trabajo. Y es muy habitual que en una misma web haya formularios de uno de ellos y del otro.

Normalmente el formulario de suscripción genérico de la web lo implementamos mediante los formularios de MailPoet y el formulario de contacto mediante Gravity Forms.

¿Y qué ocurre si en el mismo formulario de contacto añadimos una posibilidad de suscribirse a las novedades? Ahí es donde entra el código que vamos a detallar a continuación.

Para implementar este código vamos a necesitar tener instalado el plugin Code Snippets o trabajar sobre el fichero functions.php. Os aconsejo claramente lo primero.

También tenemos que identificar el número del formulario Gravity Forms:

Inicialmente, tenemos que identificar los números de los campos del formulario Gravity Forms que vamos a conectar con MailPoet. En mi caso, suelen ser los siguientes dos campos:

  • Correo electrónico
  • Nombre

Y finalmente, tenemos que identificar el número de la lista de MailPoet de la siguiente manera:

Y por último, hay un campo muy importante, para cumplir con la normativa: la aceptación de ser miembro de la lista. Para ello añadimos un control de tipo “Casillas” de Gravity Forms con una única casilla, de esta forma:

El campo Aceptación, tendrá como código “4.1” ya que la casilla es la primera de una lista.

Código PHP para enviar contactos desde Gravity Forms a MailPoet

A continuación veremos el código, teniendo en cuenta que tenemos los siguientes identificadores:

  • Identificador del formulario Gravity Forms: 2
  • Identificador de la lista MailPoet: 3
  • Identificador del campo Nombre: 7
  • Identificador del campo Email: 3
  • Campo de aceptación: “4.1”
add_action('gform_after_submission', 'suscribir_a_mailpoet', 10, 2);
function suscribir_a_mailpoet($entry, $form)
{
    $formulario_id_deseado = 2;
	
    if ($form['id'] != $formulario_id_deseado) return;
    
    $casilla_suscripcion_id = "4.1";
    $quiere_suscribirse = rgar($entry, $casilla_suscripcion_id);
  
  	//El número del campo nombre
  	$campo_nombre = 7;
  	$nombre = rgar($entry, $campo_nombre);
  	
  
    // Verifica si la casilla de suscripción está marcada
    if ($quiere_suscribirse) 
	{
	  	
        // Asegúrate de reemplazar 'Z' con el ID del campo de correo electrónico en tu formulario
        $correo_electronico_id = 3;
        $correo_electronico = rgar($entry, $correo_electronico_id);
	  
        if (!empty($correo_electronico))
		{
            $lista_id = 3;
			$list_ids = array($lista_id);
          
		  	//El cf_1 es un customfield añadido en el formulario de suscripción de Mailpoet con la aceptación.
		  
		  	$subscriber_data = array(
                'email' => $correo_electronico,
                // Agrega el usuario a la lista especificada
			  	'first_name' => $nombre,
                // Puedes añadir más campos aquí si lo necesitas
                //'cf_1' => true,
            );
		  
            try
			{
                $subscriber = \MailPoet\API\API::MP('v1')->addSubscriber($subscriber_data,$list_ids);
                // Suscripción exitosa, puedes hacer algo aquí si lo necesitas
            }
		  catch (Exception $e)
			{
                // Manejo de error
			  	error_log('Error al suscribir a MailPoet: ' . $e->getMessage());
			  	
            }
        }
    }
}

En el código podréis ver esta parte:

$subscriber_data = array(
    'email' => $correo_electronico,
    // Agrega el usuario a la lista especificada
    'first_name' => $nombre,
    // Puedes añadir más campos aquí si lo necesitas
    //'cf_1' => true,
);

Donde hay un campo comentado llamado cf_1. Ese campo significa que podemos crear campos personalizados en MailPoet y la forma de identificarlos es mediante cf_1, cf_2, …

En el siguiente enlace se puede consultar más información, en el API de MailPoet.

Quizá te interese...
Vídeotutorial donde explico cómo configurar Mailpoet para WordPress para que envíe de forma automática los contenidos que publiquemos en nuestra web.
Deja un comentario...
Suscribirme
Notificación de
guest
0 Comentarios
Comentarios en línea
Ver todos los comentarios