Как создать автоматический импорт визиток в WordPress

В современном бизнесе автоматизация импорта контактов из визиток в систему управления сайтом позволяет значительно сэкономить время и улучшить качество работы с клиентами. В этой статье мы рассмотрим, как автоматизировать импорт визиток в 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.

Как создать автоматический импорт данных из JSON в WordPress
14.04.2026
WooCommerce: автоматическое отключение оплаты при неподтверждении заказа
25.05.2026
WooCommerce: автоматическое отключение оплаты при неподтверждении заказа
28.05.2026
Автоматическое отправление отчёта по email в WordPress с помощью WPRemark
03.04.2026
Автоподписка на новые посты в WordPress: практическое руководство
24.12.2025