ГлавнаяРазноеРабота с MailChimp в WordPress

Работа с MailChimp в WordPress

MailChimp — это один из самых популярных сервисов для сбора подписчиков и отправки рассылок по электронной почте. В этой статье мы рассмотрим несколько методов интеграции MailChimp с сайтами на WordPress.

Преимущества MailChimp

Самые частые проблемы с рассылками по электронной почте возникают при отправки писем с собственного сервера и неправильной конфигурации TXT и SPF записей в DNS. Это приводит к частому попаданию рассылок в спам, или их зависанию в очереди на отправку на сервере, особенно когда речь идет о крупном количестве подписчиков.

Сервис MailChimp берет все эти проблемы на себя, и в добавок к этому предоставляет удобный интерфейс для создания рассылок, возможность сегментации списков, позволяет просматривать статистику по кампаниям и спискам, дает возможность настроить авто-ответчики и многое другое.

Базовая версия MailChimp ничего не стоит и позволяет содержать базу данных до 2,000 подписчиков, а при работе с большим количеством придется перейти на платную версию, от $30/месяц или от 0.5 центов за письмо.

Несколько хороших альтернатив сервису MailChimp: Campaign Monitor и SendGrid.

1. Ссылка на форму

Самый простой метод работы с MailChimp в WordPress — это размещение прямой ссылки на форму подписки. После создания нового списка подписчиков в сервисе MailChimp, перейдите в раздел Signup Forms → General Forms:

Создание формы для подписчиков в MailChimp

Создание формы для подписчиков в MailChimp

Здесь вы сможете самостоятельно создать форму с требуемыми полями, а также получить на не ссылку вида http://eepurl.com:

Управление полями в форме MailChimp

Управление полями в форме MailChimp

Данную ссылку вы можете разместить в меню WordPress, в текстовом виджете или в содержимом любой статьи или страницы с помощью следующего HTML кода:

Подпишитесь на <a href="ссылка здесь">нашу рассылку</a>

Кстати, формы подписки в MailChimp могут быть мультиязычными. Во вкладке «Translate it» в настройках формы вы можете указать язык по умолчанию, использовать перевод по умолчанию или самостоятельно перевести строки.

2. Интеграция формы и плагин MailChimp

Второй метод для работы с MailChimp в WordPress — это интеграция самой формы подписки, например на отдельную страницу на сайте или в боковую колонку. Для этого потребуются права администратора и возможность публиковать нефильтрованный HTML-код на сайте.

Чтобы получить код формы в MailChimp перейдите в раздел Signup Forms → Embedded Forms:

Встраиваемые формы MailChimp

Встраиваемые формы MailChimp

Здесь вы сможете настроить некоторые опции встраиваемой формы и получить ее HTML код, который необходимо вставить на сайт. Преимущество данного подхода в том, что форму подписки посетители смогут заполнить не покидая ваш сайт.

Альтернативой является официальный плагин MailChimp, который позволяет прямо из Консоли WordPress выбрать требуемый список, настроить форму для подписки и вывести ее с помощью специального виджета. Есть также ряд неофициальных плагинов которые можно рассмотреть.

3. Работа с MailChimp API

Третий и самый продвинутый метод — это работа с MailChimp через API. Здесь вам потребуются навыки программирования и написания собственных плагинов для WordPress. Методов в MailChimp API достаточно много и в этой статье мы коротко рассмотрим лишь один.

Перед началом работы вам потребуется API ключ, который можно получить на сайте MailChimp в разделе Account Settings → Extras → API Keys. Данный ключ необходимо всегда указывать при обращении к API.

Создание API ключей в MailChimp

Создание API ключей в MailChimp

Добавить адрес в список рассылки

С помощью API метода lists/subscribe мы можем добавить новый адрес электронной почты к существующему списку. Сделать это можно функцией WordPress wp_remote_post(), которая отправляет POST запрос на внешний адрес.

$api_key = 'ваш API ключ';
$dc = 'us6'; // дата-центр MailChimp
$list_id = 'идентификатор списка';
$email = 'john@gmail.com';

$url = "https://$dc.api.mailchimp.com/2.0/lists/subscribe.json";

$request = wp_remote_post( $url, array(
    'body' => json_encode( array(
        'apikey' => $api_key,
        'id' => $list_id,
        'email' => array( 'email' => $email ),
    ) ),
) );

$result = json_decode( wp_remote_retrieve_body( $request ) );

В переменной $dc хранится идентификатор дата-центра MailChimp. Его можно взять из выданного вам API ключа. Например, если ключ заканчивается на -us5, то в переменной $dc необходимо указать строку us5.

Переменная $list_id содержит индивидуальный идентификатор списка, к которому необходимо добавить подписчика. Данный идентификатор необходимо скопировать из настройки списка в разделе Settings → List Name & Defaults:

Идентификатор списка в MailChimp

Идентификатор списка в MailChimp

В переменной $email содержится адрес электронной почты, который необходимо добавить к списку. Обратите внимание на то, что при обращении к MailChimp API адрес передается не строкой, а массивом с ключом email.

После определения всех требуемых переменных, мы составляем $url, куда будет отправляться запрос, и отправляем его с помощью функции wp_remote_post(), которая возвращает результат данного запроса.

Содержимое результата можно получить с помощью функции wp_remote_retrieve_body(). Здесь как правило будет ответ об успешности операции MailChimp, или код какой-либо ошибки, например если мы пытаемся подписать адрес, который уже существует в данном списке.

В случае возникновения ошибки при HTTP запросе (например сервер недоступен), ее можно обработать с помощью WP_Error. Подробнее о функциях wp_remote_* можно почитать в кодексе WordPress.

Для удобства написанный нами код можно обернуть в функцию:

function mailchimp_subscribe( $email ) {
    // наш код
}

Таким образом мы можем использовать эту функцию в реализации собственной формы подписки, во всплывающем окне, или подписать посетителя при написании нового комментария на нашем сайте.

Как мы уже упомянули, в MailChimp API очень много различных методов. С их помощью можно:

  • Добавлять или удалять адреса из списков, как по одному так и в больших количествах
  • Создавать сегменты или группы интересов, например рубрики или метки в WordPress
  • Указывать дополнительные поля, например страница на которой пользователь подписался или автор статьи
  • Указывать источник перехода на ваш сайт

Также с помощью API можно создавать новые кампании, наполнять их содержимым и выполнять рассылки не заходя в интерфейс MailChimp. Это возможно реализовать с помощью campaigns/create, пожалуй один из самых комплексных методов API.

Заключение

MailChimp — один из самых мощных инструментов для работы с подписчиками и рассылками, при этом он подходит как для простых пользователей WordPress, так и для опытных веб-разработчиков.

Если вы ранее не работали с сервисом MailChimp, то мы рекомендуем попробовать его в рамках бесплатной версии, и интегрировать на сайт первым описанным нами методом.

Если вы не против повозиться с настройками, HTML кодом и CSS стилями, то второй метод вполне подойдет, а если вам хочется более тесной интеграции MailChimp и WordPress, то советуем смотреть в сторону API.

Подписаться на рассылку

Подписаться → Подпишитесь на бесплатную рассылку журнала WP Magazine и получайте новости, события, подборки тем и плагинов, уроки, советы и многое другое в мире WordPress!

  • Мне очень нравится MailChimp — просто и удобно. У себя на блоге использую вариант 2 — с интегрированной формой. Заинтересовали примером добавления подписчика с помощью API. Спасибо!

  • Almaz

    А я использую плагин Wisija. Это единственный плагин, позволяющий настроить автоматическую рассылку после подписки.

    • Он вроде как MailPoet теперь называется. В Jetpack есть тоже подписки по e-mail, он тоже автоматически выполняет рассылку после публикации нового контента, ну и как мы упомянули в статье, с MailChimp это тоже возможно с помощью API.

      Кстати MailChimp поддерживает рассылки с контентом из RSS лент — неплохая альтернатива если вам хочется все автоматизировать. Подробнее на английском здесь.

      • Almaz

        Под «автоматической рассылкой после подписки» я имел ввиду автоматизированную рассылку по времени. Т.е. Письмо№1 высылается в день подписки, Письмо№2 через 3 дня после подписки. И так далее. Это бывает нужно для сайтов сферы образования. Ну и в целом хороший плагин, считаю. Поддерживает шаблоны, среди которых много бесплатных и возможность создавать свои. Можно отправлять от имени существующего аккаунта в Google или настроить smtp. И многое другое.
        А дайджест, как в JetPack, много где есть.

        • Это автоответчики или приветственные письма, в MailChimp их тоже можно настроить, правда доступ туда только для платных аккаунтов.

  • Юлия

    Здравствуйте!

    Сейчас как раз начала заниматься темой рассылки для моего сайта. Среди всех сервисов рассылки выбрала именно MailChimp. Очень помогла Ваша статья. Спасибо!

    Но у меня возникла следующая техническая заминка: как к окну подписки MailChimp добавить pdf-файл (бесплатную книгу для скачивания)?

    Буду признательна за ответ.

    С уважением,
    Юлия

  • Работу с API, описанную в третьем способе, можно сильно упростить, взяв готовый клиент. Есть готовые библиотеки для многих популярных языков, в том числе и PHP (есть даже для node js).

  • Савлук Андрій

    Исправьте ошибку в коде. В пост запросе переменная должна называтся не api_key, а apikey.

    • Спасибо, исправили.

  • Dmitriy Solodukha

    Мне очень нравится MailChimp. Даже не смотря, например, на то, что он менее функционален нежели GetResponse — все равно как-то к нему проникаешься прям любовью.

    Но есть с ним одна проблема. Не могу понят в чем дело.
    Часто письма от него не сразу приходят.

    Когда пользователь заполняет форму и должен сразу получить письмо для подтверждения емаил рассылки — это письмо где-то залипает и приходит через 10-15 минут.

    Кто-нибудь сталкивался с подобным?

    • А как именно идут обращения к API? Может это какой-то плагин отправляет запрос не сразу при сабмите формы, а по крону. Я игрался с чимпом и у меня всегда сразу приходит письмо-подтверждение после обращения к API.

      • Dmitriy Solodukha

        Я просто взял код формы, которую дает MailChimp и разместил на сайте. Иногда сразу приходит письмо, иногда приходится до получаса ждать

        Саппорт MailChimp объясняет это тем, что такие письма обычно проходят доп. проверку провайдерами электронной почты

  • Дмитрий

    Константин, добрый день ! Подскажите, установил плагин MailChimp for WordPress и сделал все необходимые настройки плагина и сервиса. Всё выглядит и настроено отлично, но в каждом браузере выдаёт предупреждение ( при попытке перезагрузить страницу ) «Чтобы отобразить эту страницу, Firefox должен отправить информацию, которая повторит любое ранее произведённое действие (например, запрос на поиск или онлайн-покупка).» и если нажать «отправить заново», то письмо о том что бы подтвердить подписку придет снова. Как убрать эту «ошибку» или что можно сделать ? Посоветуйте !

  • буду это делать — все-таки воспользоваться плагином mailchamp для WP, если без кастомизации и по-простому реализовать?