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

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

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

Проверьте, есть ли у неавторизованных пользователей возможность вставлять видео в редакторе товара или комментариях. Для этого:

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

Шаги по запрету вставки видео в WooCommerce для гостей

1. Отключаем возможность вставки видео в визуальном редакторе для неавторизованных

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

function disable_video_buttons_for_guests( $buttons ) {
    if ( ! is_user_logged_in() ) {
        // Убираем кнопки вставки медиа и видео
        $remove_buttons = array('media', 'video', 'embed');
        foreach ( $remove_buttons as $button ) {
            $key = array_search( $button, $buttons );
            if ( $key !== false ) {
                unset( $buttons[$key] );
            }
        }
    }
    return $buttons;
}
add_filter( 'mce_buttons', 'disable_video_buttons_for_guests' );

Это отключит основные кнопки для вставки видео в классическом редакторе TinyMCE для гостей.

2. Фильтрация видео в содержимом товара и комментариях

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

function strip_video_tags_from_content( $content ) {
    if ( ! is_user_logged_in() ) {
        // Удаляем iframe и embed теги
        $content = preg_replace('#<(iframe|embed)[^>]*>.*?</\1>#is', '', $content);
        // Удаляем шорткоды video и embed
        $content = preg_replace('/\[(video|embed)[^\]]*\](.*?)\[\/\1\]/is', '', $content);
    }
    return $content;
}
add_filter( 'content_save_pre', 'strip_video_tags_from_content' );
add_filter( 'comment_save_pre', 'strip_video_tags_from_content' );

3. Ограничиваем загрузку видеофайлов через медиабиблиотеку

Если используется возможность загрузки видео через медиабиблиотеку, стоит ограничить её для гостей. Добавьте в functions.php:

function restrict_media_uploads_for_guests() {
    if ( ! is_user_logged_in() ) {
        wp_die( 'Загрузка файлов доступна только зарегистрированным пользователям.' );
    }
}
add_action( 'pre-upload-ui', 'restrict_media_uploads_for_guests' );

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

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

Частые ошибки и способы их исправления

  • Видео всё равно вставляется через визуальный редактор: Возможно, используется блоковый редактор Gutenberg или сторонний плагин. Для Gutenberg потребуется отключать блоки видео с помощью allowed_block_types_all или фильтров плагина.
  • Пользователи загружают видеофайлы напрямую через FTP или сторонние инструменты: Проверьте права доступа на сервере и настройте ограничения на уровне хостинга.
  • Удаление iframe и шорткодов не срабатывает: Убедитесь, что фильтры применяются к нужным хукам и что при сохранении контента нет кэширования.

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

  • Используйте фильтрацию контента, чтобы избежать внедрения вредоносного кода через iframe.
  • Отключайте загрузку видео и медиафайлов для гостей, чтобы снизить нагрузку на сервер и избежать спама.
  • Для более надежной защиты рассмотрите установку плагинов безопасности, которые блокируют вредоносные вставки в комментарии и форму товаров.
  • Если используете блоковый редактор, контролируйте доступ к блокам видео через фильтры или роль пользователя.

Сравнение методов запрета вставки видео

МетодПреимуществаНедостатки
Отключение кнопок в TinyMCEПростое и быстрое решение для классического редактораНе работает в Gutenberg и сторонних конструкторах
Фильтрация контента (iframe, шорткоды)Защищает от вставки вручную добавленного видеоМожет влиять на производительность при большом объёме контента
Ограничение загрузки в медиабиблиотекеЗапрещает загрузку видеофайлов, снижая риск злоупотребленийНе защищает от внешних вставок видео из URL
Как отладить проблемы с видео в WordPress через логирование для разработчиков
23.02.2026
Как защитить видео контент в WordPress от скачивания
22.12.2025
Как создать автоматический видео каталог в WordPress с использованием OmniVideo
20.02.2026
Как создать видео отзывы с авторизацией в WordPress
17.02.2026
Как запретить вставку видео в WooCommerce для неавторизованных пользователей
31.05.2026