Интеграция WordPress плагина Contact Form 7 с сервисом unisender.com

Пятница, 21 февраля 2014 22:54

Наверное многие знают о существовании плагина Contact Form 7, с помощью которого можно создавать практически любые формы обратной связи на сайтах, построенных на популярном движке WordPress. Плагин хорош, позволяет получать все введённые посетителем данные на ваш email. Но перед нами на днях поставили задачу по сложнее, необходимо было сделать так, чтобы после того, как пользователь ввёл свои данные на wordpress сайте, он тут же автоматически становился подписчиком на одну из рассылок, созданных с помощью сервиса unisender.com.

Раз нужно — значит сделаем.

Итак, что мы имеем: сайт на wordpress с несколькими формами, которые работают через Contact Form 7, и только две из них должны подписывать пользователей на рассылки в unisender. Причём каждая на свою.

Начинаем. Идём на 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 данный способ интеграции уже не работает. Необходимо либо разбираться с новой версией, либо использовать старую. Если у вас появится необходимость в разработке новой версии - можно связаться с нашей службой поддержки и обсудить разработку нового плагина на платной основе.


Юнисендр — отличный сервис. Ничего плохого сказать не могу..Понравилась возможность пробного периода.

Серегй Серегй | Пятница, 31 января 2014 20:05


НУ что могу сказать, хорошее обслуживание, хорошие специалисты, работу выполнили в полном объеме, в общем — респект им!

Никитка Никитка | Среда, 02 апреля 2014 02:10


Хорошая компания, всегда выполняет заявленные обязательства, всё быстро и качественно!

Александр Александр | Пятница, 04 апреля 2014 02:11


Я открыла собственный проект и стал вопрос о его рекламе, выбрала емаил рассылку от юнисендер, очень довольна! Сервис оправдал мои ожидания!

Кира Сергеевна Кира Сергеевна | Понедельник, 05 мая 2014 17:13


А сейчас этот способ работает? Пол утра убил, но что-то не пашет.
Смущает NOMER_FORMY_1 — какой формат? У меня 2 формы которые вызываются внутри WordPress как [contact-form 1 «Форма для контакта 1″] и [contact-form 2 «Обратная связь»]. Подставлял соответственно $WPCF7_ContactForm->posted_data[‘_wpcf7′] == «1» — не пашет. Не подскажите, где копать?

Денис Денис | Вторник, 13 мая 2014 12:03


С кавычками в «1» все ок. При публикации что то тут исправилось.

Денис Денис | Вторник, 13 мая 2014 12:05


Практически разобрался. Судя по всему проблема в том, что у меня стоит Contact Form 7 второй версии. А id которые необходимы появились только в третьей. Позже обновлю все и отпишу о результатах.

Денис Денис | Вторник, 13 мая 2014 13:07


У меня усложненная задача. Мне нужно следующее: Contact form 7 — создана форма (назовем ее условно id-333), в которой человек указывает свое имя и имейл после чего он нажимает кнопку «скачать» и качается прайс. Тут не форма подписки, а именно скачка. Нужно, что бы после того как человек скачал, ему на след. день приходило письмо. Я всё сделала по Вашей инструкции, но после нажатия на кнопку скачать — скачка не начинается, а от юнисендера приходит такое письмо (я поставила 1 вместо 0): Данный подписчик не сможет получать ваши рассылки так как он не получил письма подтверждения. Чтобы в дальнейшем пользователи автоматически получали пригласительные письма при подписке, вам необходимо указать обратный адрес отправителя приглашения.

Помогите найти решение! Спасибо

Мария Мария | Четверг, 10 июля 2014 02:15


Не подскажете как можно такое сделать только с плагином Email-Users ( то есть Contact Form 7 + Email-Users )

Иван Иван | Понедельник, 15 сентября 2014 06:16


К сожалению, в самой новой версии Contact Form 7 данный способ интеграции уже не работает.
Необходимо либо разбираться с новой версией, либо использовать старую.

WebPatron WebPatron | Пятница, 06 февраля 2015 02:18


Оставить комментарий

  • Способы
    Оплаты:
  • visa
  • mastercard
  • qiwi
  • webmoney
  • yandex money
  • sberbank
  • mts bank
  • zpayment
  • liqpay
  • alfabank white
  • paxum e1411320249623
Copyright © 2012 - 2024 WebPatron Ltd. All rights reserved.