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

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

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

Типичные признаки проблемы:

  • Видео воспроизводятся без входа на сайт
  • Ссылки на видео доступны по прямым URL
  • Отсутствует проверка прав доступа перед показом видео

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

1. Проверка авторизации пользователя перед показом видео

Добавьте проверку авторизации в шаблон вывода видео. Например, если видео вставлено через шорткод или в описании товара, создайте кастомный шорткод, который будет проверять, залогинен ли пользователь.

function protected_video_shortcode($atts, $content = null) {
    if ( is_user_logged_in() ) {
        return do_shortcode($content);
    } else {
        return '<p>Для просмотра видео необходимо <a href="' . wp_login_url() . '">войти</a> на сайт.</p>';
    }
}
add_shortcode('protected_video', 'protected_video_shortcode');

Используйте шорткод в описании товара или на странице так:

[protected_video]<video src="https://example.com/video.mp4" controls></video>[/protected_video]

2. Ограничение доступа к видеофайлам по URL

Важно не только скрыть видео на фронтенде, но и защитить прямые ссылки. Для этого рекомендуем использовать защиту с помощью .htaccess и PHP.

Вариант с проверкой реферера в .htaccess (работает на Apache):

<FilesMatch "\.(mp4|mov|avi)$">
    RewriteEngine On
    RewriteCond %{HTTP_REFERER} !^https://yourdomain\.ru/ [NC]
    RewriteRule .* - [F]
</FilesMatch>

Плюс добавить PHP-скрипт-прокси для выдачи видео, где проверяется авторизация пользователя:

if ( !is_user_logged_in() ) {
    status_header(403);
    exit('Доступ запрещён');
}
// Далее отдаем файл видео с помощью readfile или X-Sendfile

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

  • Откройте страницу с видео в режиме гостя (без входа) — видео должно быть скрыто с сообщением о необходимости авторизации
  • Попробуйте перейти по прямой ссылке на видео — доступ должен быть запрещён или возвращён 403
  • Войдите под пользователем — видео должно отображаться и воспроизводиться корректно

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

  • Видео все равно доступны гостям: Проверьте, что все места вывода видео используют шорткод или функцию проверки авторизации. Не все плагины автоматически применяют ограничения.
  • Прямые ссылки не защищены: Настройте серверную защиту через .htaccess или реализуйте выдачу видео через PHP с проверкой сессии.
  • Ошибка 500 после правок .htaccess: Проверьте синтаксис файла и логи сервера, ошибки в RewriteRule часто вызывают проблемы.
  • Видео не воспроизводится у авторизованных: Проверьте правильность URL и права доступа, убедитесь, что видеофайлы не повреждены.

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

  • Используйте X-Sendfile (Apache) или X-Accel-Redirect (Nginx) для отдачи защищённых видеофайлов через PHP — это значительно снизит нагрузку на сервер.
  • Кэшируйте проверки авторизации на стороне сервера, чтобы не выполнять их при каждом запросе видео.
  • Регулярно обновляйте WooCommerce и WordPress, чтобы избежать уязвимостей в безопасности.
  • Если используете сторонние CDN для видео, настройте приватные ссылки или токены доступа.

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

МетодПреимуществаНедостатки
Шорткод с проверкой авторизацииПростая реализация, подходит для контента в постахНе защищает прямые ссылки на видео
Защита через .htaccess (реферер)Блокирует прямой доступ по URLРеферер можно подделать, не полностью безопасно
Отдача видео через PHP с проверкой сессииМаксимальная безопасность, полный контроль доступаНагрузка на сервер выше, сложнее реализовать
Как запретить вставку видео в WooCommerce для неавторизованных пользователей
28.04.2026
Как сделать автоматический откат видео в WordPress при ошибках воспроизведения
26.01.2026
Как создать видео отзывы с авторизацией в WordPress
17.02.2026
Как автоматизировать конвертацию видео при загрузке в WordPress
14.01.2026
Как автоматизировать удалённую запись видео в WordPress
22.01.2026