Cómo integrar el boletín de MailChimp en la aplicación Laravel
¿Quieres integrar la funcionalidad del boletín de MailChimp a tu aplicación Laravel? MailChimp es un servicio de marketing por correo electrónico que nos permite enviar boletines a nuestros suscriptores. En este artículo, te muestro cómo integrar el boletín de MailChimp en el sitio web de Laravel.
MailChimp es uno de los servicios de marketing por correo electrónico más populares, que gestiona los suscriptores de su sitio web. Con MailChimp, sus suscriptores recibirán un boletín informativo sobre contenido nuevo, anuncios, ofertas y mucho más, según su elección. Este es un tipo de sistema automatizado. El propietario del sitio web no necesita recordar haber enviado el boletín a los suscriptores. MailChimp se maneja solo, lo que nos ahorra mucho tiempo.
Otros proveedores de servicios de marketing por correo electrónico populares son:
Recientemente, publiqué un artículo sobre la integración de MailChimp usando la API de MailChimp y PHP. Uno de los lectores preguntó sobre la integración de MailChimp en Laravel. Entonces, decidí escribir este artículo para responder a la pregunta del lector.
Dicho esto, integremos el boletín de MailChimp en la aplicación Laravel.
Obtén la clave de la API de MailChimp y el ID de audiencia
Para integrar la API de MailChimp, debe obtener una clave de API y una ID de audiencia. Siga los pasos a continuación para obtener estas credenciales.
Inicie sesión en su cuenta de MailChimp. Debajo del icono de usuario, seleccione Cuenta.
Haga clic en Extra-> API keys.
En la sección Sus claves de API, haga clic en Crear una clave y copie su clave de API que necesitamos en un momento.
Ahora tienes lista tu clave API. A continuación, obtenga una ID de audiencia a la que necesita agregar sus suscriptores. Para ello, haga clic en el menú Audiencia y luego seleccione la opción Configuración del menú desplegable Administrar audiencia.
En Configuración, haga clic en ‘Nombre de la audiencia y valores predeterminados’.
En la página siguiente, encontrará su ID de audiencia.
Spatie ha creado la fantástica biblioteca del boletín de noticias Laravel. Voy a integrar el boletín de MailChimp usando esta biblioteca.
Abra la terminal en el directorio raíz de su proyecto y ejecute el comando:
composer require spatie/laravel-newsletter
Después de instalar la biblioteca, ejecute el siguiente comando para publicar el archivo de configuración config/newsletter.php
.
php artisan vendor:publish --provider="SpatieNewsletterNewsletterServiceProvider"
Dirígete al directorio ‘config’ y abre el archivo ‘newsletter.php’.
newsletter.php
<?php
return [
/*
* The API key of a MailChimp account. You can find yours at
* https://us10.admin.mailchimp.com/account/api-key-popup/.
*/
'apiKey' => env('MAILCHIMP_APIKEY'),
/*
* The listName to use when no listName has been specified in a method.
*/
'defaultListName' => 'subscribers',
/*
* Here you can define properties of the lists.
*/
'lists' => [
/*
* This key is used to identify this list. It can be used
* as the listName parameter provided in the various methods.
*
* You can set it to any string you want and you can add
* as many lists as you want.
*/
'subscribers' => [
/*
* A MailChimp list id. Check the MailChimp docs if you don't know
* how to get this value:
* http://kb.mailchimp.com/lists/managing-subscribers/find-your-list-id.
*/
'id' => env('MAILCHIMP_LIST_ID'),
],
],
/*
* If you're having trouble with https connections, set this to false.
*/
'ssl' => true,
];
No necesita hacer ningún cambio aquí excepto el valor ‘ssl’. Si no tiene un certificado SSL en su servidor, establezca este valor en falso. Puede ver las constantes MAILCHIMP_APIKEY y MAILCHIMP_LIST_ID en el código anterior. Significa que debe agregar estas constantes con valores reales en su .env
archivo.
.env
....
MAILCHIMP_APIKEY=YOUR_MAILCHIMP_API_KEY
MAILCHIMP_LIST_ID=YOUR_MAILCHIMP_LIST_ID
Después de esto, borre la caché de configuración usando el comando:
php artisan config:clear
Integrar el boletín de MailChimp en la aplicación Laravel
Ha instalado y configurado la biblioteca. Ahora puede seguir adelante con la integración de MailChimp en su sitio web de Laravel. Creemos un formulario de boletín simple en su archivo de vista.
<form action="{{ url('ROUTE_HERE') }}" method="post">
<div class="form-group">
<label for="exampleInputEmail">Email</label>
<input type="email" name="user_email" id="exampleInputEmail" class="form-control">
</div>
{{ csrf_field() }}
<button type="submit" class="btn btn-primary">Submit</button>
</form>
Asegúrese de reemplazar el marcador de posición ROUTE_HERE con el valor real. A continuación, en su archivo de controlador, agregue la fachada del paquete instalado.
En la función del controlador donde está publicando el formulario, escriba el código de la siguiente manera:
<?php
namespace AppHttpControllers;
use IlluminateHttpRequest;
use Newsletter;
....
public function store(Request $request)
{
if (! Newsletter::isSubscribed($request->user_email)) {
Newsletter::subscribe($request->user_email);
}
}
?>
Aquí, primero estoy verificando si un usuario ya está agregado a la lista de suscriptores o no. Si no es así, agréguelo a la lista de suscriptores. Usé el método subscribe()
que suscribe directamente al usuario a la lista. Si necesita enviar un correo electrónico de confirmación al usuario antes de suscribirse a la lista, reemplace la siguiente línea
Newsletter::subscribe($request->user_email);
con
Newsletter::subscribePending($request->user_email);
subscribePending()
La función establece un estado de usuario como ‘pendiente’ en la lista de MailChimp hasta que el usuario confirma la suscripción.
Mailchimp también proporciona los campos Audiencia que almacenan información adicional sobre los usuarios directamente dentro del panel de MailChimp. Por si acaso, si está buscando agregar campos de audiencia, puede hacerlo agregando un parámetro más en el método anterior. Aquí, estoy agregando valores para los campos de audiencia predeterminados FNAME y LNAME.
Newsletter::subscribe($request->user_email, ['FNAME'=>'ENTER_FIRST_NAME', 'LNAME'=>'ENTER_LAST_NAME']);
Si desea agregar etiquetas para el suscriptor, use el addTags()
método. Pase los elementos múltiples en una matriz en caso de que necesite asignar múltiples etiquetas. En mi caso, estoy asignando la etiqueta ‘Blogger’ al suscriptor.
Newsletter::addTags(['Blogger'], $request->user_email);
El usuario puede eliminar al suscriptor de la lista usando el código:
Newsletter::delete('SUBSCRIBER_EMAIL');
Estos son los métodos básicos que normalmente se requieren en el sitio web. Es posible que también desee verificar las funciones adicionales proporcionadas por este paquete en GitHub.
Espero que comprenda cómo integrar el boletín de MailChimp en su sitio web de Laravel. Comparta sus pensamientos y sugerencias en la sección de comentarios a continuación.
Artículos relacionados
- Integración de MailChimp con el complemento Contact Form 7
- Integración de MailChimp en WordPress sin usar un complemento