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

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

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

Как понять, что видео доступно неавторизованным пользователям

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

Пошаговое решение: запрет вставки видео для гостей в WooCommerce

Для решения задачи нам нужно перехватить вывод содержимого описания товара или отзывов и убрать теги видео для гостей. Рассмотрим пример для описания товара.

1. Фильтрация контента описания товара

Добавьте следующий код в functions.php вашей темы или в отдельный плагин:

function restrict_video_in_product_description($content) {
    if ( ! is_user_logged_in() && is_product() ) {
        // Удаляем теги video, iframe и embed
        $content = preg_replace('#<video.*?>.*?</video>#is', '', $content);
        $content = preg_replace('#<iframe.*?>.*?</iframe>#is', '', $content);
        $content = preg_replace('#<embed.*?>.*?</embed>#is', '', $content);
        // Можно дополнительно вывести сообщение для гостей
        $content .= '<p><em>Видеоконтент доступен только для авторизованных пользователей.</em></p>';
    }
    return $content;
}
add_filter('the_content', 'restrict_video_in_product_description');

2. Аналогичная фильтрация для отзывов WooCommerce

Отзывы выводятся через специальный шаблон, но можно перехватить их содержимое с помощью фильтра comment_text:

function restrict_video_in_review($comment_text) {
    if ( ! is_user_logged_in() && is_product() ) {
        $comment_text = preg_replace('#<video.*?>.*?</video>#is', '', $comment_text);
        $comment_text = preg_replace('#<iframe.*?>.*?</iframe>#is', '', $comment_text);
        $comment_text = preg_replace('#<embed.*?>.*?</embed>#is', '', $comment_text);
        $comment_text .= '<p><em>Видео в отзывах доступно только авторизованным пользователям.</em></p>';
    }
    return $comment_text;
}
add_filter('comment_text', 'restrict_video_in_review');

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

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

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

  • Видео всё ещё видно гостям: вероятно, кэш страницы не очищен. Очистите кеш плагинов и браузера.
  • Фильтр не работает на отдельных шаблонах: убедитесь, что шаблон использует the_content или comment_text для вывода. Иначе нужно подключать фильтр к другому хуку.
  • Видео встраивается через JavaScript-плееры: регулярные выражения не удалят динамический JS-плеер. Потребуется дополнительная фильтрация или отключение плеера для гостей.
  • Появляются ошибки PHP после добавления кода: проверьте синтаксис, используйте отладчик, убедитесь, что код добавлен в правильное место.

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

  • Используйте серверный фильтр вместо JavaScript, чтобы видео не загружались вовсе для гостей — это экономит трафик.
  • Если видео хранятся на внешних сервисах (YouTube, Vimeo), настройте приватность видео через их панели управления.
  • Используйте кэширование с учетом авторизации, чтобы не кэшировать страницу с видео для гостей.
  • При большом количестве товаров и отзывов рассмотрите возможность использования специализированных плагинов для ограничения контента, например, MemberPress или Restrict Content Pro.

Сравнение вариантов решения

МетодПлюсыМинусыКогда применять
Фильтрация контента через the_content и comment_textПростота, бесплатное решение, быстрое внедрениеНе всегда удаляет видео из сложных плееров, требует проверки шаблоновДля сайтов с небольшим количеством видео и простой встраивкой
Плагины ограничения доступа (MemberPress, Restrict Content Pro)Гибкие настройки, поддержка разных типов контентаПлатно, сложнее в настройкеДля крупных магазинов с разными уровнями доступа
Настройка приватности видео на хостинге (YouTube, Vimeo)Управление доступом на стороне сервиса, экономия ресурсовЗависимость от внешнего сервиса, возможны ограничения функционалаДля видео, размещённых на внешних платформах
Как запретить вставку видео в WooCommerce для неавторизованных пользователей
10.07.2026
Как удалить старые версии постов WordPress без плагинов
30.11.2025
Как добавить подписку на видео в WordPress с помощью OmniVideo
29.01.2026
Как создать собственный шорткод для видео в WordPress
21.11.2025
Как установить автоматическую проверку видео на плагиат в WordPress
27.02.2026