Mailchimp api на русском

Mailchimp API на русском языке. В этой статье я расскажу как использовать API сервиса рассылки Mailchimp.
Укажу где в документации взять код для подписки пользователя и как его скрытно подписать в свой список во время покупки товара в магазине Woocommerce.

Описание

Mailchimp довольно мощный инструмент для организации подписки на своем сайте.

Он позволяет создавать списки подписчиков по которым вы сможете сделать рассылку. Со своим макетом письма и текстом сообщения, именем пользователя и т.д. Это все можно опробовать совершенно бесплатно, создав аккаунт на сервисе.

Но сейчас речь пойдет о том, как использовать API Мейлчимп.

API Мейлчимп

Ссылка на документацию http://developer.mailchimp.com/documentation/mailchimp/reference/root.

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

 

Я расскажу на примере.

Для начала нужно создать аккаунт на  сервисе. Затем активировать учетную запись и залогиниться.

В правом верхнем углу, с вашим именем аккаунта, выберите в выпадающем списке пункт Account.

mailchimp-account

Затем Extras->Api keys

mailchimp-api-key

Если у вас еще нет ключа, создайте его нажав кнопку Create A Key. Скопируйте получившийся ключ куда-нибудь в текстовый файл. Он вам понадобится при разработке.

Задача для примера

Нужно скрытно подписать пользователя вашего сайта в список мейлчимпа, ( зачастую просят такое сделать ), после покупки в вашем интернет магазине. Так как мы используем Вордпресс, то интернет магазин Woocommerce.

 

Как создать список Мейлчипм.( list Mailchimp )

В главном меню выбираем Lists->Create List.

Укажем аттрибуты: имя, email откуда, имя от кого, краткое описание.

В перечне наших спискрв выберем нужный и нажмем Stats->Settings

mailchimp list name

 

В следующем пункте увидим нужный нам listID

mailchimp-listID

Найдем в документации раздел, как подписать пользователя с список.

http://developer.mailchimp.com/documentation/mailchimp/reference/lists/members/#

И найдем там пример, как это сделать

mailchimp подписать юзера

Как подсказывает нам документация, нужно использовать CURL. Для тех кто не в курсе, рекомендую PHP CURL.

Напишем следующий код


function order_subscribe_user($order_id){

             $order = wc_get_order( $order_id );
             $fname = $order->get_billing_first_name();
             $email= $order->get_billing_email();
             $apiKey = "4b0237de1ghy5sdf3456a01d78d49b2f87-us11"; // ваш API KEY от вашего аккаунта
             $listID = 'aksjd23423'; // ID нашего списка подписчиков
             $re = '/[\d]+$/';

		preg_match_all($re, $apiKey, $matches, PREG_SET_ORDER, 0);

		$link_num = (isset($matches[0][0])) ? $matches[0][0] : ''; // регулярным выражением извлечем из него номер хоста вашего аккаунта

		$url = 'https://us'.$link_num.'.api.mailchimp.com/3.0/lists/'.$listID.'/members';

               /////////////////////// PHP CURL /////////////////////////////////////////
               $ch = curl_init();
               curl_setopt($ch, CURLOPT_USERPWD, 'user:' . $apiKey);
	       curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);
	       curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
	       curl_setopt($ch, CURLOPT_TIMEOUT, 10);

	   		curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
			$json = json_encode([
	      			           'email_address' => $email,
	      			           'merge_fields'=>array('FNAME'=>$fname),
	      			           'status'        => 'subscribed',
	      				        ]);
    		curl_setopt($ch, CURLOPT_POSTFIELDS, $json);

	       curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

	       $result = curl_exec($ch);
	       $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); // в случае удачной подписки вернется код >200, 
                   // если что то не так или такой пользователь подписан - вернется > 400
	       curl_close($ch);
               //////////////////////////////////////////////////////////////////////////
}

Осталось малое — зацепить нашу функцию на хук Woocommerce, который отрабатывает во время создания заказа


// add_action( 'woocommerce_order_status_on-hold', 'order_subscribe_user', 10, 1 );
// add_action( 'woocommerce_order_status_pending', 'order_subscribe_user', 10, 1 );
// add_action( 'woocommerce_order_status_processing', 'order_subscribe_user', 10, 1 );
add_action( 'woocommerce_checkout_order_processed', 'order_subscribe_user', 10, 1 );

Два раза один и тотже подписчик в список не попадет, во второй раз сервис вернет 400

Код рабочий и опробирован неоднократно.

После подписки через время вы можете проверить свой аккаунт, и подписанного пользователя в списке. Правда бывает и через 10 минут, но при условии, что $httpCode вернул вам 200.

3 Replies to “llorix one lite разработано компанией весь сайт как убрать

    1. Можно, но это все таки лишний элемент на странице. Ничтожно, но увеличивает время загрузки. Лучше просто с сервера не отдавать.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *