Доброго дня.
Необходимо передать данные из 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-форму код, размещённый в пункте "Пример формы в HTML" ниже */
))
));
$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-форму код, размещённый в пункте "Пример формы в HTML" ниже */
))
));
$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]=Ссылка на страницу объекта
Помогите пожалуйста выяснить, в чем тут проблема, найти, где я накосячил в коде :(