Начинаем. Идём на unisender.com, в настройках своего аккаунта активируем API и запоминаем ключ от него. Далее переходим в Мои списки (то есть рассылки) и узнаём id наших рассылок. Для этого просто подводим курсор к кнопке редактирования нужного списка и видим его номер во всплывающей подсказке, он же присутствует и в ссылке на редактирование. Запоминаем эти номера.
Теперь переходим к нашему сайту на wordpress. Здесь нам нужны id наших форм, с которых мы будем отправлять информацию в unisender, а также названия нужных нам полей, которые мы и будем передавать. В нашем случае всё стандартно, отправлять нам нужно имя и email (ведь для подписки больше ничего и не нужно), эти поля у нас называются стандартно [your-name] и [your-email]. Записываем эти данные.
С подготовительной частью закончили, приступаем к реализации. Будем писать плагин, который будет получать необходимую нам информацию с нужных на форм Contact Form 7, и передавать её в фоновом режиме через API на unisender.com, автоматически подписывая пользователя на нужную нам рассылку.
В папке wp-content/plugins создаём файл нашего плагина, называем его как угодно, к примеру unisender.php. И в этот файл вставляем вот такой код (предварительно отредактировав его под себя, в соответствии с комментариями ниже):
<?php /* Plugin Name: Contact Form 7 API Unisender Plugin URI: https://webpatron.net Description: Автоматическая подписка в Unisender Author: Webpatron Ltd. Version: 1.0 Author URI: https://webpatron.net */ function wpcf7_get_unisender (&$WPCF7_ContactForm) { if ($WPCF7_ContactForm->posted_data['_wpcf7'] == "NOMER_FORMY_1"){ $firstname = $WPCF7_ContactForm->posted_data['your-name']; $email = $WPCF7_ContactForm->posted_data['your-email']; file_get_contents('http://api.unisender.com/ru/api/subscribe?format=json&api_key=APIKEY&list_ids=NOMER_PODPISKI_1&fields[email]='.$email.'&fields[Name]='.$firstname.'&double_optin=0&overwrite=0'); } elseif ($WPCF7_ContactForm->posted_data['_wpcf7'] == "NOMER_FORMY_2") { $firstname = $WPCF7_ContactForm->posted_data['your-name']; $email = $WPCF7_ContactForm->posted_data['your-email']; file_get_contents('http://api.unisender.com/ru/api/subscribe?format=json&api_key=APIKEY&list_ids=NOMER_PODPISKI_2&fields[email]='.$email.'&fields[Name]='.$firstname.'&double_optin=0&overwrite=0'); } } add_action("wpcf7_mail_sent", "wpcf7_get_unisender"); ?>
Изменяем следующие значения:
- NOMER_FORMY_1 и NOMER_FORMY_2 — вместо этого вписываем id наших форм из вордпресса.
- NOMER_PODPISKI_1 и NOMER_PODPISKI_2 — а это соответственно номера наших рассылок в сервисе unisender.com.
- APIKEY — это наш ключ от API, который мы получили на unisender.
- Значение 0 в double_optin говорит о том, что пользователю ещё необходимо отправить запрос на подтверждение согласия на рассылку. Если поставить 1, то, этого согласия у его никто не спросит.
Вот в принципе и всё. Идём теперь в админку Wordpress, и активируем только что созданный нами плагин Contact Form 7 API Unisender.
Всё работает, поставленная задача выполнена.
UPD 02.02.2015: К сожалению, в самой новой версии Contact Form 7 данный способ интеграции уже не работает. Необходимо либо разбираться с новой версией, либо использовать старую. Если у вас появится необходимость в разработке новой версии - можно связаться с нашей службой поддержки и обсудить разработку нового плагина на платной основе.