R
R
RobertoB242018-09-25 13:59:43
Bitrix24
RobertoB24, 2018-09-25 13:59:43

Woocommerce and Bitrix24 WordPress plugin integration script not working?

Please help explain how to correctly install the script.
I have a Woocommerce and Bitrix24 plugin integration script to submit lead generation. But it doesn't work.
After installing this script in the functions.php of the theme and specifying your data, requests still do not come.
Please check if there is an error in this script. And how to fix it. Thanks a lot !

add_action( 'woocommerce_thankyou', 'my_custom_tracking' );
function my_custom_tracking( $order_id ) {
//подключение к серверу CRM
define('CRM_HOST', 'your_domain.bitrix24.ru'); // Ваш домен CRM системы
define('CRM_PORT', '443'); // Порт сервера CRM. Установлен по умолчанию
define('CRM_PATH', '/crm/configs/import/lead.php'); // Путь к компоненту lead.rest
//авторизация в CRM
define('CRM_LOGIN', '[email protected]'); // Логин пользователя Вашей CRM по управлению лидами
define('CRM_PASSWORD', 'your_password'); // Пароль пользователя Вашей CRM по управлению лидами
// получение информации по заказу
$order = wc_get_order( $order_id );
$order_data = $order->get_data();
// базjвая информация по заказу
$order_id = $order_data['id'];
$order_currency = $order_data['currency'];
$order_payment_method_title = $order_data['payment_method_title'];
$order_shipping_totale = $order_data['shipping_total'];
$order_total = $order_data['total'];
$order_base_info = "<hr><strong>Общая информация по заказу</strong><br>
ID заказа: $order_id<br>
Валюта заказа: $order_currency<br>
Метода оплаты: $order_payment_method_title<br>
Стоимость доставки: $order_shipping_totale<br>
Итого с доставкой: $order_total<br>";
// информация по клиенту
$order_customer_id = $order_data['customer_id'];
$order_customer_ip_address = $order_data['customer_ip_address'];
$order_billing_first_name = $order_data['billing']['first_name'];
$order_billing_last_name = $order_data['billing']['last_name'];
$order_billing_email = $order_data['billing']['email'];
$order_billing_phone = $order_data['billing']['phone'];
$order_client_info = "<hr><strong>Информация по клиенту</strong><br>
ID клиента = $order_customer_id<br>
IP адрес клиента: $order_customer_ip_address<br>
Имя клиента: $order_billing_first_name<br>
Фамилия клиента: $order_billing_last_name<br>
Email клиента: $order_billing_email<br>
Телефон клиента: $order_billing_phone<br>";
// информация по доставке
$order_shipping_address_1 = $order_data['shipping']['address_1'];
$order_shipping_address_2 = $order_data['shipping']['address_2'];
$order_shipping_city = $order_data['shipping']['city'];
$order_shipping_state = $order_data['shipping']['state'];
$order_shipping_postcode = $order_data['shipping']['postcode'];
$order_shipping_country = $order_data['shipping']['country'];
$order_shipping_info = "<hr><strong>Информация по доставке</strong><br>
Страна доставки: $order_shipping_state<br>
Город доставки: $order_shipping_city<br>
Индекс: $order_shipping_postcode<br>
Адрес доставки 1: $order_shipping_address_1<br>
Адрес доставки 2: $order_shipping_address_2<br>";
// получение информации по товару
$order->get_total();
$line_items = $order->get_items();
foreach ( $line_items as $item ) {
$product = $order->get_product_from_item( $item );
$sku = $product->get_sku(); // артикул товара
$id = $product->get_id(); // id товара
$name = $product->get_name(); // название товара
$description = $product->get_description(); // описание товара
$stock_quantity = $product->get_stock_quantity(); // кол-во товара на складе
$qty = $item['qty']; // количество товара, которое заказали
$total = $order->get_line_total( $item, true, true ); // стоимость всех товаров, которые заказали, но без учета доставки
$product_info[] = "<hr><strong>Информация о товаре</strong><br>
Название товара: $name<br>
ID товара: $id<br>
Артикул: $sku<br>
Описание: $description<br>
Заказали (шт.): $qty<br>
Наличие (шт.): $stock_quantity<br>
Сумма заказа (без учета доставки): $total;";
}
$product_base_infо = implode('<br>', $product_info);
$subject = "Заказ с сайта № $order_id";
//сопостановление полей Bitrix24 с полученными данными из Contact Form 7
$postData = array(
'TITLE' => $subject,
'COMMENTS' => $order_base_info.' '.$order_client_info.' '.$order_shipping_info.' '.$product_base_infо
);
//передача данных из Contact Form 7 в Bitrix24
if (defined('CRM_AUTH')) {
$postData['AUTH'] = CRM_AUTH;
} else {
$postData['LOGIN'] = CRM_LOGIN;
$postData['PASSWORD'] = CRM_PASSWORD;
}
$fp = fsockopen("ssl://".CRM_HOST, CRM_PORT, $errno, $errstr, 30);
if ($fp) {
$strPostData = '';
foreach ($postData as $key => $value)
$strPostData .= ($strPostData == '' ? '' : '&').$key.'='.urlencode($value);
$str = "POST ".CRM_PATH." HTTP/1.0\r\n";
$str .= "Host: ".CRM_HOST."\r\n";
$str .= "Content-Type: application/x-www-form-urlencoded\r\n";
$str .= "Content-Length: ".strlen($strPostData)."\r\n";
$str .= "Connection: close\r\n\r\n";
$str .= $strPostData;
fwrite($fp, $str);
$result = '';
while (!feof($fp))
{
$result .= fgets($fp, 128);
}
fclose($fp);
$response = explode("\r\n\r\n", $result);
$output = '<pre>'.print_r($response[1], 1).'</pre>';
} else {
echo 'Connection Failed! '.$errstr.' ('.$errno.')';
}
}

Answer the question

In order to leave comments, you need to log in

1 answer(s)
L
lamer350, 2018-09-25
@lamer350

//подключение к серверу CRM
define('CRM_HOST', 'your_domain.bitrix24.ru'); // Ваш домен CRM системы
define('CRM_PORT', '443'); // Порт сервера CRM. Установлен по умолчанию
define('CRM_PATH', '/crm/configs/import/lead.php'); // Путь к компоненту lead.rest
//авторизация в CRM
define('CRM_LOGIN', '[email protected]'); // Логин пользователя Вашей CRM по управлению лидами
define('CRM_PASSWORD', 'your_password'); // Пароль пользователя Вашей CRM по управлению лидами
// получение информации по заказу

Here you need to drive in your CRM data everywhere (domain, login, password)

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question