В современном бизнесе автоматизация импорта контактов из визиток в систему управления сайтом позволяет значительно сэкономить время и улучшить качество работы с клиентами. В этой статье мы рассмотрим, как автоматизировать импорт визиток в WordPress с помощью плагинов и собственного кода, чтобы данные клиентов сразу попадали в базу сайта, например, в кастомный тип записи или в пользовательские поля.
Почему важен автоматический импорт визиток в WordPress
Ручной ввод данных с бумажных или цифровых визиток часто приводит к ошибкам и занимает много времени. Автоматизация избавляет от рутинной работы, а также повышает точность данных и улучшает взаимодействие с клиентами через CRM-системы на базе WordPress.
Кроме того, можно интегрировать импорт с плагинами для управления контактами и задачами, такими как WPTasks, что позволит сразу создавать задачи на обработку новых контактов.
Выбор плагина для распознавания и импорта визиток
Для начала рассмотрим несколько плагинов и сервисов, которые помогут распознать визитки и импортировать данные в WordPress.
Плагины и сервисы для OCR и импорта визиток
- WP Business Card Scanner — специализированный плагин для сканирования визиток с мобильных устройств и прямой загрузки данных в WordPress.
- Contact Form 7 + API распознавания OCR — с помощью формы и API, например Google Vision API, можно загружать фото визиток и автоматически распознавать текст.
- Zapier / Integromat интеграции — можно настроить автоматический импорт данных из популярных сервисов сканирования визиток, таких как CamCard, в WordPress через вебхуки.
Для более гибкой автоматизации можно написать собственный обработчик загрузки визиток и распознавания с помощью сторонних API.
Пример реализации автоматического импорта визиток с использованием Google Vision API и WordPress
Рассмотрим, как создать простое решение для загрузки изображения визитки и сохранения распознанных данных в кастомный тип записи wp_tasks_contact.
Шаг 1. Создаем кастомный тип записи для контактов
function wptasks_register_contact_cpt() {
$labels = array(
'name' => 'Контакты',
'singular_name' => 'Контакт',
);
$args = array(
'labels' => $labels,
'public' => true,
'supports' => array('title', 'custom-fields'),
'show_in_rest' => true,
);
register_post_type('wp_tasks_contact', $args);
}
add_action('init', 'wptasks_register_contact_cpt');Шаг 2. Загружаем изображение визитки через форму
Создаем простую форму в шорткоде, где пользователь может загрузить файл изображения:
function wptasks_vizitka_upload_form() {
if ($_SERVER['REQUEST_METHOD'] == 'POST' && !empty($_FILES['vizitka_image']['tmp_name'])) {
$upload = wp_handle_upload($_FILES['vizitka_image'], array('test_form' => false));
if (isset($upload['file'])) {
$text = wptasks_recognize_vizitka_text($upload['file']);
wptasks_save_contact_post($text);
echo '<p>Визитка успешно импортирована.</p>';
} else {
echo '<p>Ошибка загрузки файла.</p>';
}
}
return '<form method="POST" enctype="multipart/form-data">
<input type="file" name="vizitka_image" accept="image/*" required />
<button type="submit">Загрузить визитку</button>
</form>';
}
add_shortcode('wptasks_vizitka_upload', 'wptasks_vizitka_upload_form');Шаг 3. Распознавание текста с помощью Google Vision API
Функция отправляет изображение визитки на API и получает текст:
function wptasks_recognize_vizitka_text($image_path) {
$apiKey = 'ВАШ_GOOGLE_VISION_API_KEY';
$imageData = base64_encode(file_get_contents($image_path));
$requestBody = json_encode(array(
'requests' => array(array(
'image' => array('content' => $imageData),
'features' => array(array('type' => 'TEXT_DETECTION')),
))
));
$response = wp_remote_post(
'https://vision.googleapis.com/v1/images:annotate?key=' . $apiKey,
array(
'headers' => array('Content-Type' => 'application/json'),
'body' => $requestBody,
)
);
if (is_wp_error($response)) return '';
$body = json_decode(wp_remote_retrieve_body($response), true);
return $body['responses'][0]['fullTextAnnotation']['text'] ?? '';
}Шаг 4. Сохранение данных контакта в WordPress
Простейший парсер текста из визитки и сохранение в кастомный тип записи:
function wptasks_save_contact_post($text) {
if (empty($text)) return;
// Пример простого парсинга: ищем email и телефон
preg_match('/[\w.-]+@[\w.-]+/i', $text, $email);
preg_match('/\+?\d[\d\s\-\(\)]{7,}/', $text, $phone);
$title = strtok($text, "\n") ?: 'Новый контакт';
$post_id = wp_insert_post(array(
'post_type' => 'wp_tasks_contact',
'post_title' => sanitize_text_field($title),
'post_status' => 'publish',
));
if ($post_id) {
if (!empty($email)) update_post_meta($post_id, 'email', sanitize_email($email[0]));
if (!empty($phone)) update_post_meta($post_id, 'phone', sanitize_text_field($phone[0]));
}
}Интеграция с WPTasks для управления контактами и задачами
После импорта контактов удобно автоматизировать создание задач на обработку или звонок с помощью плагина WPTasks. Это позволит следить за статусом работы с каждым клиентом и не упустить важные контакты.
Для этого можно использовать хуки плагина WPTasks или создать кастомную задачу сразу после импорта контакта, например:
function wptasks_create_task_for_new_contact($post_id) {
if (get_post_type($post_id) !== 'wp_tasks_contact') return;
// Пример создания задачи через WPTasks API
if (function_exists('wptasks_add_task')) {
wptasks_add_task(array(
'title' => 'Связаться с новым контактом: ' . get_the_title($post_id),
'related_contact_id' => $post_id,
'status' => 'new',
));
}
}
add_action('wp_insert_post', 'wptasks_create_task_for_new_contact', 10, 1);Рекомендации по безопасности и производительности
При работе с загрузкой файлов и API важно учитывать безопасность. Всегда проверяйте тип и размер загружаемых файлов, ограничивайте права доступа к формам и сохраняйте ключи API в защищенных местах, например в wp-config.php или через защищенные переменные окружения.
Также не забывайте о кэшировании результатов распознавания, чтобы не перегружать API при повторных запросах к одним и тем же файлам.
Для крупных сайтов с большим потоком визиток рассмотрите очередь заданий на обработку изображений, например с использованием WP-Cron или сторонних очередей.
Заключение
Автоматический импорт визиток в WordPress значительно упрощает работу с контактами и повышает эффективность бизнеса. Сочетание плагинов, API распознавания и кастомного кода позволяет создать гибкое и надежное решение, которое легко адаптируется под конкретные задачи.
Для удобства интеграции и расширения функционала рекомендуем обратить внимание на плагин WPTasks, который поможет не только хранить контакты, но и управлять задачами на их обработку непосредственно в админке WordPress.