Как создать видео отзывы с авторизацией в WordPress

Видео отзывы — это отличный способ повысить доверие к вашему сайту и продуктам. Особенно эффективно, когда эти отзывы публикуются зарегистрированными пользователями. В этой статье мы подробно разберём, как создать функционал сбора видео отзывов с авторизацией в WordPress, включая примеры кода и рекомендации по плагинам.

Почему стоит использовать видео отзывы с авторизацией

Видео отзывы создают живое впечатление о вашем продукте или услуге, увеличивают конверсию и делают сайт более интерактивным. Авторизация пользователей перед загрузкой видео помогает:

  • Контролировать качество и безопасность контента;
  • Избежать спама и фейковых отзывов;
  • Связать отзывы с реальными клиентами для повышения доверия;
  • Управлять отзывами через панель администратора.

Для реализации такого функционала потребуется интеграция форм с системой авторизации и загрузки видео на сервер.

Выбор плагина для сбора видео отзывов с авторизацией

Самостоятельно реализовать весь функционал сложно, поэтому рекомендуем использовать плагины, которые облегчат задачу:

  • WP User Frontend Pro — позволяет создавать фронтенд-формы для авторизованных пользователей, которые могут загружать видеофайлы. Есть возможность ограничения по ролям пользователей.
  • OmniVideo — специализированный плагин для работы с видео контентом. В сочетании с плагином авторизации можно быстро настроить прием видео отзывов.
  • Advanced Custom Fields (ACF) Pro — с помощью поля типа "Файл" можно добавить загрузку видео в профиль пользователя, а форму вывести на фронтенде для авторизованных пользователей.

Для нашего примера рассмотрим связку OmniVideo и кастомной фронтенд-формы с проверкой авторизации.

Создание фронтенд-формы для загрузки видео отзывов

Основной задачей является вывод формы только для авторизованных пользователей и обработка видеофайлов.

Добавим в тему или плагин следующий код для отображения формы:

function omni_video_display_review_form() {
    if (!is_user_logged_in()) {
        echo '<p>Пожалуйста, <a href="'.wp_login_url(get_permalink()).'">войдите</a> чтобы оставить видео отзыв.</p>';
        return;
    }
    echo '<form id="omni-video-review-form" method="post" enctype="multipart/form-data">';
    echo '<label for="omni_video_review">Загрузите видео отзыв (MP4, максимум 50МБ):</label><br>';
    echo '<input type="file" name="omni_video_review" accept="video/mp4" required /><br>';
    echo '<input type="submit" name="omni_video_review_submit" value="Отправить" />';
    echo '</form>';
}
add_shortcode('omni_video_review_form', 'omni_video_display_review_form');

Теперь обработаем загрузку видео при отправке формы. Добавим функцию в functions.php или в плагин:

function omni_video_handle_review_upload() {
    if (!isset($_POST['omni_video_review_submit'])) {
        return;
    }
    if (!is_user_logged_in()) {
        wp_die('Только авторизованные пользователи могут загружать видео.');
    }
    if (!isset($_FILES['omni_video_review'])) {
        wp_die('Файл не был загружен.');
    }
    $file = $_FILES['omni_video_review'];
    // Проверяем тип и размер файла
    if ($file['type'] !== 'video/mp4') {
        wp_die('Допустим только формат MP4.');
    }
    if ($file['size'] > 50 * 1024 * 1024) { // 50МБ
        wp_die('Максимальный размер файла 50МБ.');
    }
    require_once(ABSPATH . 'wp-admin/includes/file.php');
    $upload_overrides = array('test_form' => false);
    $movefile = wp_handle_upload($file, $upload_overrides);
    if ($movefile && !isset($movefile['error'])) {
        // Создаем вложение в медиабиблиотеке
        $attachment = array(
            'post_mime_type' => $movefile['type'],
            'post_title' => 'Видео отзыв пользователя ' . wp_get_current_user()->display_name,
            'post_content' => '',
            'post_status' => 'inherit'
        );
        $attach_id = wp_insert_attachment($attachment, $movefile['file']);
        require_once(ABSPATH . 'wp-admin/includes/image.php');
        $attach_data = wp_generate_attachment_metadata($attach_id, $movefile['file']);
        wp_update_attachment_metadata($attach_id, $attach_data);
        // Сохраняем ID вложения как пользовательский мета - можно потом вывести видео
        update_user_meta(get_current_user_id(), 'omni_video_review_attachment_id', $attach_id);
        echo '<p>Видео отзыв успешно загружен.</p>';
    } else {
        wp_die($movefile['error']);
    }
}
add_action('wp', 'omni_video_handle_review_upload');

Таким образом пользователь может загрузить видео, которое сохранится в медиабиблиотеке и будет связано с профилем.

Вывод видео отзывов на сайте

Чтобы показать видео отзывы, которые пользователи загрузили, можно создать шорткод:

function omni_video_display_reviews() {
    $users = get_users(array(
        'meta_key' => 'omni_video_review_attachment_id',
        'meta_compare' => 'EXISTS'
    ));
    if (empty($users)) {
        return '<p>Видео отзывы пока отсутствуют.</p>';
    }
    $output = '<div class="omni-video-reviews">';
    foreach ($users as $user) {
        $attach_id = get_user_meta($user->ID, 'omni_video_review_attachment_id', true);
        $video_url = wp_get_attachment_url($attach_id);
        $output .= '<div class="review-item">';
        $output .= '<p>Отзыв пользователя: ' . esc_html($user->display_name) . '</p>';
        $output .= '<video src="' . esc_url($video_url) . '" controls width="320" height="240"></video>';
        $output .= '</div>';
    }
    $output .= '</div>';
    return $output;
}
add_shortcode('omni_video_reviews', 'omni_video_display_reviews');

Для использования добавьте на страницу шорткод [omni_video_review_form] для формы загрузки и [omni_video_reviews] для вывода отзывов.

Оптимизация и безопасность

Работа с видеофайлами требует внимания к производительности и безопасности:

  • Ограничивайте максимальный размер файлов;
  • Проверяйте MIME-тип и расширение файлов;
  • Используйте CDN и кеширование для быстрой загрузки видео;
  • Регулярно обновляйте WordPress и плагины, чтобы избежать уязвимостей;
  • Для снижения нагрузки можно использовать сервисы внешнего хостинга видео (например, YouTube, Vimeo) и сохранять ссылки в отзывах.

Заключение

С помощью описанного подхода можно создать удобный функционал сбора видео отзывов с авторизацией пользователей на WordPress-сайте. Этот метод универсален и может быть адаптирован под разные задачи — от простого приема видео до комплексной системы отзывов с модерацией и аналитикой.

Если хотите упростить работу с видео, посмотрите плагин OmniVideo — он отлично подходит для интеграции видео в WordPress.

Как автоматизировать удалённую запись видео в WordPress
22.01.2026
Как отладить проблемы с видео в WordPress через логирование ошибок
13.12.2025
Как изменить размер видео в WordPress без потери качества
17.12.2025
Как автоматически добавить транскрипт видео в WordPress
04.01.2026
Как удалить неиспользуемые виджеты в WordPress
08.12.2025