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

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

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

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

Пошаговое решение

1. Настройка продукта WooCommerce как «Виртуальный» и «Загружаемый»

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

2. Хранение видеофайлов вне публичной директории

Для максимальной безопасности загружайте видеофайлы в директорию, недоступную напрямую по URL, например, wp-content/uploads/protected-videos, и укажите этот путь в настройках товара. WooCommerce будет выдавать файлы через обработчик PHP, проверяя права доступа.

3. Проверка настроек «Доступ к загрузке»

В WooCommerce перейдите в WooCommerce → Настройки → Продукты → Загрузки. Убедитесь, что выбрано:

  • Метод загрузки: «Прямой доступ к файлу» запрещён, лучше выбрать «Прокси загрузка» (X-Accel-Redirect / X-Sendfile) или «Force Downloads».
  • Доступ к загрузке: «Только для авторизованных пользователей, которые приобрели продукт».

4. Принудительная авторизация перед загрузкой (проверка через фильтр)

Добавьте следующий код в файл functions.php вашей темы или в плагин-сниппет, чтобы дополнительно блокировать загрузку при отсутствии авторизации:

add_filter('woocommerce_file_download_permissions_check', 'restrict_video_download_to_logged_in', 10, 3);
function restrict_video_download_to_logged_in($has_permission, $download, $product) {
    if (!is_user_logged_in()) {
        return false;
    }
    return $has_permission;
}

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

  • Выйдите из аккаунта на сайте и попробуйте загрузить видео с прямой ссылки — доступ должен быть запрещён.
  • Авторизуйтесь под пользователем, который покупал видео, и проверьте, что загрузка работает.
  • Если используется кэширование, очистите кэш сайта и браузера.

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

  • Проблема: Файлы доступны по прямой URL без авторизации.
    Причина: Видео лежат в публичной папке без защиты.
    Решение: Переместите видео в защищённую директорию и настройте WooCommerce для выдачи файлов через прокси.
  • Проблема: Настройки WooCommerce по умолчанию не работают.
    Причина: Используется «Прямой доступ» в настройках загрузок.
    Решение: Переключите на «Force Downloads» или «X-Sendfile».
  • Проблема: Пользователи получают ссылки на загрузку в письмах, которые могут передавать другим.
    Причина: Ссылки на загрузку не имеют ограничения по времени.
    Решение: Используйте плагины или кастомный код для генерации временных ссылок.

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

  • Используйте метод X-Sendfile или X-Accel-Redirect для отдачи файлов через сервер, чтобы снизить нагрузку на PHP и защитить файлы.
  • Ограничьте число загрузок и срок доступа к файлам в настройках товара.
  • Регулярно обновляйте WooCommerce и используемые плагины, чтобы избежать уязвимостей.
  • Для больших видео используйте CDN, настроенный на защиту приватных файлов.

Сравнение вариантов ограничения скачивания видео

МетодОписаниеПлюсыМинусы
Прямой доступ к файламВидео лежит в публичной папке, ссылки открытыПростота настройкиНет защиты, доступ для всех
Force DownloadsWooCommerce отдаёт файлы через PHP с проверкой правЗащита доступа, контроль загрузокНагрузка на сервер при больших файлах
X-Sendfile / X-Accel-RedirectОтдача файлов через веб-сервер с проверкой WooCommerceВысокая производительность, безопасностьТребует поддержки на сервере и правильной настройки
Как добавить автоматическое отображение видео в постах WordPress
09.03.2026
Как создать автоматический видео каталог в WordPress с использованием OmniVideo
20.02.2026
Как защитить видео контент в WordPress от скачивания
22.12.2025
Оптимизация базы данных WordPress для видео сайтов: практические советы и примеры
17.11.2025
Как избежать проблем с кэшированием видео в WordPress: практические решения
04.12.2025