Как интегрировать новостную рассылку MailChimp в приложение Laravel
Вы хотите интегрировать функциональность рассылки MailChimp в свое приложение Laravel? MailChimp – это служба электронного маркетинга, которая позволяет нам рассылать информационные бюллетени нашим подписчикам. В этой статье я покажу вам, как интегрировать информационный бюллетень MailChimp в веб-сайт Laravel.
MailChimp – один из популярных сервисов электронного маркетинга, который управляет подписчиками вашего сайта. Используя MailChimp, ваши подписчики будут получать информационный бюллетень о новом контенте, объявлениях, скидках и многом другом в зависимости от вашего выбора. Это своего рода автоматизированная система. Владельцу веб-сайта не нужно помнить о том, чтобы отправлять рассылку подписчикам. MailChimp справляется самостоятельно, что экономит нам много времени.
Еще одним популярным поставщиком услуг электронного маркетинга являются:
Недавно я опубликовал статью об интеграции MailChimp с использованием MailChimp API и PHP. Один из читателей спросил об интеграции MailChimp в Laravel. Итак, я решил написать эту статью, чтобы ответить на вопрос читателя.
Сказав это, давайте интегрируем информационный бюллетень MailChimp в приложение Laravel.
Получите ключ API MailChimp и идентификатор аудитории
Чтобы интегрировать MailChimp API, вам необходимо получить ключ API и идентификатор аудитории. Следуйте инструкциям ниже, чтобы получить эти учетные данные.
Войдите в свою учетную запись MailChimp. Под значком пользователя выберите Учетную запись.
Нажмите Extra-> API-ключи.
В разделе «Ваши ключи API» нажмите «Создать ключ» и скопируйте свой ключ API, который нам понадобится в ближайшее время.
Теперь у вас есть ключ API. Затем получите идентификатор аудитории, к которому нужно добавить подписчиков. Для этого щелкните меню «Аудитория», а затем выберите параметр «Настройки» в раскрывающемся списке «Управление аудиторией».
В разделе «Настройки» нажмите «Имя аудитории и значения по умолчанию».
На следующей странице вы найдете свой идентификатор аудитории.
Spatie создал фантастическую библиотеку новостей Laravel. Я собираюсь интегрировать информационный бюллетень MailChimp с помощью этой библиотеки.
Откройте терминал в корневом каталоге вашего проекта и выполните команду:
composer require spatie/laravel-newsletter
После установки библиотеки выполните команду ниже, чтобы опубликовать файл конфигурации в config/newsletter.php
.
php artisan vendor:publish --provider="SpatieNewsletterNewsletterServiceProvider"
Перейдите в каталог config и откройте файл 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,
];
Здесь не нужно вносить никаких изменений, кроме значения ssl. Если у вас нет сертификата SSL на вашем сервере, установите для этого значения значение false. Вы можете увидеть константы MAILCHIMP_APIKEY и MAILCHIMP_LIST_ID в приведенном выше коде. Это означает, что вам нужно добавить эти константы с фактическими значениями в ваш .env
файл.
.env
....
MAILCHIMP_APIKEY=YOUR_MAILCHIMP_API_KEY
MAILCHIMP_LIST_ID=YOUR_MAILCHIMP_LIST_ID
После этого очистите кеш конфигурации с помощью команды:
php artisan config:clear
Интегрируйте рассылку MailChimp в приложение Laravel
Вы установили и настроили библиотеку. Теперь вы можете продолжить интеграцию MailChimp на своем веб-сайте Laravel. Давайте создадим простую форму информационного бюллетеня в вашем файле просмотра.
<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>
Обязательно замените заполнитель ROUTE_HERE на фактическое значение. Затем в вашем файле контроллера добавьте фасад установленного пакета.
В функции контроллера, в которую вы отправляете форму, напишите код следующим образом:
<?php
namespace AppHttpControllers;
use IlluminateHttpRequest;
use Newsletter;
....
public function store(Request $request)
{
if (! Newsletter::isSubscribed($request->user_email)) {
Newsletter::subscribe($request->user_email);
}
}
?>
Здесь я сначала проверяю, добавлен ли пользователь в список подписчиков или нет. Если нет, то добавьте его в список подписчиков. Я использовал метод subscribe()
прямой подписки пользователя на список. Если вам нужно отправить пользователю электронное письмо с подтверждением перед подпиской на список, замените строку ниже
Newsletter::subscribe($request->user_email);
с участием
Newsletter::subscribePending($request->user_email);
subscribePending()
Функция устанавливает статус пользователя как «ожидающий» в списке MailChimp, пока пользователь не подтвердит подписку.
Mailchimp также предоставляет поля Audience, в которых хранится дополнительная информация о пользователях прямо в панели управления MailChimp. На всякий случай, если вы хотите добавить поля аудитории, вы можете сделать это, добавив еще один параметр в вышеупомянутом методе. Здесь я добавляю значения для полей аудитории по умолчанию FNAME и LNAME.
Newsletter::subscribe($request->user_email, ['FNAME'=>'ENTER_FIRST_NAME', 'LNAME'=>'ENTER_LAST_NAME']);
Если вы хотите добавить теги для подписчика, используйте addTags()
метод. Передайте несколько элементов в массив, если вам нужно назначить несколько тегов. В моем случае я назначаю подписчику тег Blogger.
Newsletter::addTags(['Blogger'], $request->user_email);
Пользователь может удалить абонента из списка с помощью кода:
Newsletter::delete('SUBSCRIBER_EMAIL');
Это основные методы, которые обычно требуются на веб-сайте. Вы также можете проверить дополнительные функции, предоставляемые этим пакетом, на GitHub.
Надеюсь, вы понимаете, как интегрировать информационный бюллетень MailChimp на свой сайт Laravel. Пожалуйста, поделитесь своими мыслями и предложениями в разделе комментариев ниже.
Статьи по Теме
- Интеграция MailChimp с плагином Contact Form 7
- Интеграция MailChimp в WordPress без использования плагина