Как запретить скачивание видео в WooCommerce для неавторизованных пользователей

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

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

Основные причины проблемы:

  • Ссылки на видеофайлы не защищены и доступны напрямую;
  • Отсутствует проверка авторизации перед выдачей файла;
  • Использование стандартного способа загрузки без ограничений в WooCommerce;
  • Плагины для ограничения доступа не настроены или не установлены.

Пошаговое решение: как ограничить скачивание видео в WooCommerce

1. Настройка продукта как цифрового товара с ограничением доступа

В панели администратора WooCommerce при создании/редактировании продукта:

  1. Выберите тип продукта "Простой продукт" и отметьте "Виртуальный" и "Загружаемый".
  2. Добавьте видеофайл через поле загрузки в разделе "Загружаемые файлы".
  3. Укажите ограничения скачивания (например, максимальное число скачиваний и срок действия ссылки).

2. Ограничение доступа к видео через хуки WooCommerce и проверка авторизации

По умолчанию WooCommerce защищает ссылки, но если видео размещены напрямую на сервере и выводятся через URL, можно дополнительно ограничить доступ с помощью фильтра woocommerce_file_download_permissions.

Пример кода для functions.php темы или собственного плагина:

add_filter('woocommerce_file_download_permissions', 'restrict_video_download_for_guests', 10, 3);
function restrict_video_download_for_guests( $download_permission, $product_id, $user_id ) {
    if ( ! $user_id ) { // пользователь не авторизован
        $product = wc_get_product( $product_id );
        if ( $product && $product->is_downloadable() ) {
            // Проверяем, что продукт содержит видео (например, по метке или категории)
            if ( has_term( 'video', 'product_cat', $product_id ) ) {
                return false; // запрещаем скачивание
            }
        }
    }
    return $download_permission;
}

Этот код запрещает скачивание видеофайлов для неавторизованных пользователей, учитывая, что видео принадлежат категории "video".

3. Использование плагинов для дополнительной защиты

Рассмотрите применение плагинов, которые обеспечивают защиту файлов, например:

  • Clearfy Pro — оптимизация безопасности и контроль доступа;
  • Плагины для стриминга видео вместо прямой отдачи файлов (например, Video.js с серверным стримингом).

Проверка результата после внедрения

Чтобы убедиться, что скачивание видео запрещено для гостей:

  • Откройте сайт в режиме инкогнито (неавторизованный пользователь).
  • Перейдите к странице продукта с видеоконтентом и попробуйте скачать видео.
  • Если скачивание заблокировано, вы увидите ошибку доступа или перенаправление.
  • Авторизуйтесь под аккаунтом с покупкой и повторите попытку скачивания — файл должен скачиваться без проблем.

Частые ошибки и как их исправить

  • Ошибка: Видео скачиваются без ограничений.
    Причина: файлы размещены в общедоступной папке без защиты.
    Решение: перенесите видео в защищённую папку вне публичного доступа, используйте механизм скачивания через PHP с проверкой авторизации.
  • Ошибка: Пользователи с покупкой не могут скачать видео.
    Причина: неправильная проверка user_id или категория продукта не совпадает.
    Решение: проверьте условие в функции, убедитесь, что категория "video" или метка прописаны корректно.
  • Ошибка: Появляются ошибки PHP при добавлении фильтра.
    Причина: синтаксические ошибки или конфликт с другими плагинами.
    Решение: проверьте логи, исправьте код, протестируйте на чистой установке.

Практические советы по безопасности видео в WooCommerce

  • Используйте защищённые директории или стриминг вместо прямого доступа к файлам.
  • Минимизируйте время действия ссылок для скачивания.
  • Используйте SSL для всех страниц с видео и загрузками.
  • Регулярно обновляйте WooCommerce и плагины безопасности.

Сравнение способов защиты видео в WooCommerce

МетодПлюсыМинусыПример использования
Стандартные загрузки WooCommerceПростая настройка, встроено в WooCommerceСсылки можно перехватить, ограничено по безопасностиНастройка продукта в админке
Защищённый PHP-скрипт с проверкой авторизацииКонтроль доступа, скрытие реальных URLНужны навыки программирования, нагрузка на серверКод с проверкой user_id и отдаванием файла
Стриминг видео (HLS, DASH)Максимальная защита, невозможно скачать напрямуюСложно настроить, требует дополнительного сервера/плагинаИспользование Video.js и серверного транслятора
Как отладить проблемы с видео в WordPress через логирование ошибок
13.12.2025
Как создать видео отзывы с авторизацией в WordPress
17.02.2026
Как добавить автоматическое отображение видео в постах WordPress
09.03.2026
Как запретить вставку видео в WooCommerce для неавторизованных пользователей
10.07.2026
Как разрешить просмотр видео только для авторизованных пользователей в WooCommerce
15.07.2026