nipopadyuk
@nipopadyuk

Как из CF7 передать данные в CRM?

Доброго дня.

Необходимо передать данные из CF7 в CRM Intrumnet

В официальной документации есть такой код:
<?
//Для работы необходим Curl
$ch = curl_init();
curl_setopt_array($ch , array(
	CURLOPT_URL            => 'http://yourdomain.intrumnet.com/onlineforms' ,
	CURLOPT_POST           => true ,
	CURLOPT_RETURNTRANSFER => true ,
	CURLOPT_CUSTOMREQUEST  => "POST" ,
	CURLOPT_POSTFIELDS     => http_build_query(array(
		"action"   => "fillform" ,
		"formtype" => 7 ,
		"data"     => array(
			"def_customer" => array(
				"name" => $_POST[ "form" ][ '7' ][ "def_customer" ][ "name" ] ,
				"email" => $_POST[ "form" ][ '7' ][ "def_customer" ][ "email" ] ,
				"phone" => $_POST[ "form" ][ '7' ][ "def_customer" ][ "phone" ]
			) ,
			"ext_request" => array(
				"722" => array(
					"type"  => "text" ,
					"value" => $_POST[ "form" ][ '7' ][ "ext_request" ][ 722 ] /* Ссылка на страницу объекта */
				) ,
				"723" => array(
					"type"  => "decimal" ,
					"value" => $_POST[ "form" ][ '7' ][ "ext_request" ][ 723 ] /* Первоначальный взнос */
				) ,
				"724" => array(
					"type"  => "decimal" ,
					"value" => $_POST[ "form" ][ '7' ][ "ext_request" ][ 724 ] /* Сумма кредита */
				)
			)
		) ,
		"ihistory" => $_POST[ 'intrum_stat_history' ] /* Используется для получения данных статистики посетителя сайта, отправившего онлайн-форму, например: источник входа, история просмота страниц и т. д. Вставьте в HTML-форму код, размещённый в пункте &quot;Пример формы в HTML&quot; ниже */
	))
));
$responseData = json_decode(curl_exec($ch)); // ответ от сервера
curl_close($ch);
echo rawurldecode('%D0%9D%D0%B0%D1%88%D0%B8%20%D1%81%D0%BF%D0%B5%D1%86%D0%B8%D0%B0%D0%BB%D0%B8%D1%81%D1%82%D1%8B%20%D1%81%20%D0%92%D0%B0%D0%BC%D0%B8%20%D1%81%D0%B2%D1%8F%D0%B6%D1%83%D1%82%D1%81%D1%8F%20%D0%B2%20%D0%B1%D0%BB%D0%B8%D0%B6%D0%B0%D0%B9%D1%88%D0%B5%D0%B5%20%D0%B2%D1%80%D0%B5%D0%BC%D1%8F.');
?>


Сайт находится на VPS, curl присутствует и активно используется в cron заданиях (наполняем объекты через wp all import)

Понаходил в интернете кучу инфы, как перехватить данные из CF7, сделал такой код:

add_filter( 'wpcf7_before_send_mail', 'wpcf7_before_send_mail_start_function' );
function wpcf7_before_send_mail_start_function($cf7){
	global $url_qr_cf7;
 	$mail=$cf7->prop('mail');
	if($mail){
		$contact_form = $cf7->get_current();
		$contact_form_id = $contact_form -> id;
		if ($contact_form_id == 8559){
			
			

			$f7Name = $_POST['your-name'];
			$f7Email = $_POST['your-email'];
			$f7tel = $_POST['your-tel'];
			$site_url = 'https://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];


			//$get_url = 'http://yourdomain.intrumnet.com/onlineforms?action=fillform&formtype=7&data[def_customer][name]='.$f7Name.'&data[def_customer][email]='.$f7Email.'&data[def_customer][phone]='.$f7tel.'&data[ext_request][722][type]=text&data[ext_request][722][value]='.$site_url.'&data[ext_request][723][type]=decimal&data[ext_request][723][value]=&data[ext_request][724][type]=decimal&data[ext_request][724][value]=';


			

			$ch = curl_init();
			curl_setopt_array($ch , array(
				CURLOPT_URL            => 'http://yourdomain.intrumnet.com/onlineforms' ,
				CURLOPT_POST           => true ,
				CURLOPT_RETURNTRANSFER => true ,
				CURLOPT_CUSTOMREQUEST  => "POST" ,
				CURLOPT_POSTFIELDS     => http_build_query(array(
					"action"   => "fillform" ,
					"formtype" => 7 ,
					"data"     => array(
						"def_customer" => array(
							"name" => $_POST['your-name'] ,
							"email" => $_POST['your-email'] ,
							"phone" => $_POST['your-tel']
						) ,
						"ext_request" => array(
							"722" => array(
								"type"  => "text" ,
								"value" => $site_url /* Ссылка на страницу объекта */
							) ,
							"723" => array(
								"type"  => "decimal" ,
								"value" => '' /* Первоначальный взнос */
							) ,
							"724" => array(
								"type"  => "decimal" ,
								"value" => '' /* Сумма кредита */
							)
						)
					) ,
					"ihistory" => $_POST[ 'intrum_stat_history' ] /* Используется для получения данных статистики посетителя сайта, отправившего онлайн-форму, например: источник входа, история просмота страниц и т. д. Вставьте в HTML-форму код, размещённый в пункте &quot;Пример формы в HTML&quot; ниже */
				))
			));
			$responseData = json_decode(curl_exec($ch)); // ответ от сервера
			curl_close($ch);
 

		}
	 
	} 
}


Но он не сработал. Письмо на почту уходит, а в СРМ сущность не создается.
Если сделать просто GET запрос в браузере, то сущность в СРМ создается.
Например,

http://yourdomain.intrumnet.com/onlineforms?action=fillform&formtype=7&data[def_customer][name]=Имя&data[def_customer][email]=Email&data[def_customer][phone]=Телефон&data[ext_request][722][type]=text&data[ext_request][722][value]=Ссылка на страницу объекта

Помогите пожалуйста выяснить, в чем тут проблема, найти, где я накосячил в коде :(
  • Вопрос задан
  • 43 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы