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

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

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

Пошаговое решение ограничения вставки видео для неавторизованных

1. Определяем, где размещаются видео в WooCommerce

Наиболее распространённые места для видео — описание товара (the_content на странице товара), отдельные блоки с видео или пользовательские поля ACF. Важно понять, откуда берётся видео, чтобы правильно применить фильтр.

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

Используем хук the_content, чтобы заменить iframe или видео-теги на сообщение о необходимости входа для просмотра.

function restrict_video_for_guests_in_product_content($content) {
    if (is_product() && !is_user_logged_in()) {
        // Ищем iframe или видео теги
        if (preg_match('/<iframe.*?>.*?<\/iframe>|<video.*?>.*?<\/video>/is', $content)) {
            // Заменяем видео на сообщение
            $content = preg_replace('/<iframe.*?>.*?<\/iframe>|<video.*?>.*?<\/video>/is',
                '<div class="video-restricted">Пожалуйста, войдите в аккаунт для просмотра видео.</div>', $content);
        }
    }
    return $content;
}
add_filter('the_content', 'restrict_video_for_guests_in_product_content');

3. Обработка видео в пользовательских полях или шорткодах

Если видео добавлены через ACF или шорткоды, используйте соответствующие фильтры вывода и добавьте проверку is_user_logged_in(). Например, для шорткода:

function shortcode_video_restriction($atts, $content = null) {
    if (!is_user_logged_in()) {
        return '<div class="video-restricted">Требуется авторизация для просмотра видео.</div>';
    }
    return do_shortcode($content);
}
add_shortcode('restricted_video', 'shortcode_video_restriction');

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

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

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

  • Видео не заменяется для гостей: проверьте правильность хуков, возможно видео выводится через AJAX или сторонний плагин — в этом случае нужно подключать проверку в другом месте.
  • Сообщение отображается для авторизованных: проверьте, что is_user_logged_in() вызывается корректно, и что пользователь действительно авторизован.
  • Видео встроено через JavaScript: замена по the_content не сработает, нужна блокировка на уровне JS или сервера.
  • Проблемы с кэшированием: если используется плагин кэширования (например, WP Rocket), настройте исключение кэширования для страниц товаров или отключите кэширование для авторизованных пользователей.

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

  • Защита от обхода: даже с заменой видео в контенте, исходные ссылки могут быть доступны. Для критичного контента используйте защищённые плейлисты и серверные методы ограничения доступа.
  • Минимизация нагрузки: фильтры the_content вызываются часто, поэтому используйте регулярные выражения оптимально и кешируйте результаты, если нужно.
  • Кэширование: настройте кэширование так, чтобы страницы с ограниченным доступом не кешировались для гостей и авторизованных по-разному.
  • UI/UX: добавьте понятное сообщение с ссылкой на страницу входа/регистрации для удобства пользователей.

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

МетодОписаниеПлюсыМинусы
Фильтр the_contentЗамена видео в описании товараПросто и быстроНе работает с видео через JS/AJAX
Шорткод с проверкой авторизацииКонтроль вывода видео через шорткодГибко, удобно для разных местНужно переписывать вставки видео
Защищённые плейлисты и серверные проверкиОграничение доступа на сервереМаксимальная безопасностьСложнее в настройке, требует серверных прав
Как создать собственный шорткод для видео в WordPress
21.11.2025
Как создать видео отзывы с авторизацией в WordPress
17.02.2026
Как избежать проблем при удалённом управлении видео в WordPress
14.01.2026
Как установить ограничения на размер и длительность видео в WordPress
17.04.2026
Как автоматически отключать автозапуск видео в WordPress для всех браузеров
18.01.2026