Как добавить подписку на видео в WordPress с помощью OmniVideo

Владельцам сайтов с видео-контентом часто требуется организовать систему подписки, чтобы ограничивать доступ к видео только зарегистрированным или оплатившим пользователям. В этой статье мы подробно рассмотрим, как добавить подписку на видео в WordPress с использованием плагина OmniVideo и кастомного кода, чтобы обеспечить удобное и гибкое управление доступом.

Почему нужна подписка на видео в WordPress

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

Это особенно важно для образовательных порталов, видеокурсов, платных вебинаров и сервисов с эксклюзивным видео.

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

Основные этапы добавления подписки на видео

Чтобы реализовать подписку, нужно:

  • Создать структуру пользователей и ролей с ограничениями доступа.
  • Настроить плеер и видео-контент с проверкой прав доступа.
  • Добавить форму подписки с оплатой или регистрацию.
  • Обеспечить защиту видео от несанкционированного доступа и скачивания.

Разберем эти этапы на практике с использованием OmniVideo и примерами кода.

Создаем пользовательские роли и права доступа

WordPress из коробки поддерживает роли, но для подписчиков стоит создать отдельную роль, например, video_subscriber. Это позволит гибко контролировать доступ.

function omni_video_register_roles() {
    add_role('video_subscriber', 'Видео подписчик', array(
        'read' => true,
        'view_video_content' => true
    ));
}
add_action('init', 'omni_video_register_roles');

Здесь мы добавляем роль с правом view_video_content, которое будем проверять при выводе видео.

Проверяем доступ к видео в плеере OmniVideo

OmniVideo позволяет выводить видео через шорткод или PHP-функцию. Добавим проверку доступа в функцию вывода, чтобы показывать видео только подписчикам.

function omni_video_display_video_with_subscription( $video_id ) {
    if ( current_user_can('view_video_content') ) {
        echo do_shortcode('[omnivideo video_id="' . esc_attr($video_id) . '"]');
    } else {
        echo '<p>Для просмотра видео необходимо <a href="' . wp_login_url() . '">войти</a> или <a href="' . site_url('/register') . '">зарегистрироваться</a>.</p>';
    }
}

Этот код можно вставлять в шаблоны или использовать в шорткодах, чтобы выводить видео по подписке.

Добавляем форму подписки и регистрацию

Для регистрации можно использовать стандартную страницу WordPress или плагин для регистрации пользователей. Для приема оплат — интегрировать WooCommerce или Easy Digital Downloads с расширениями для подписок.

OmniVideo хорошо сочетается с WooCommerce Subscriptions, что позволяет автоматически менять роль пользователя после оплаты.

Защита видео от скачивания и обхода

Чтобы минимизировать скачивание видео, используйте следующие методы:

  • Включите в OmniVideo опцию защиты — отключение правого клика и отображение ссылок.
  • Используйте потоковое видео (HLS или DASH) вместо прямых mp4-файлов.
  • Добавьте проверку прав доступа на уровне сервера, например, через .htaccess или PHP.

Пример защиты потока в .htaccess (Apache):

RewriteEngine On
RewriteCond %{HTTP_REFERER} !^https://(www\.)?yourdomain\.ru/ [NC]
RewriteRule \.(mp4|m3u8|ts)$ - [F,L]

Это ограничит доступ к видеофайлам только с вашего сайта.

Интеграция OmniVideo с WooCommerce Subscriptions

Если вы хотите принимать оплату за подписку, то WooCommerce Subscriptions — идеальный выбор. После успешной оплаты пользователю можно автоматически назначать роль video_subscriber.

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

function omni_video_woocommerce_subscription_role_change($user_id) {
    $user = new WP_User($user_id);
    $user->add_role('video_subscriber');
}
add_action('woocommerce_subscription_status_active', 'omni_video_woocommerce_subscription_role_change');
<

Теперь после активации подписки пользователь получает доступ к видео.

Пример полного шорткода для видео по подписке

Создадим шорткод, который выводит видео с проверкой подписки:

function omni_video_shortcode_subscription($atts) {
    $atts = shortcode_atts(array('id' => 0), $atts, 'omni_video_sub');
    ob_start();
    if ( current_user_can('view_video_content') ) {
        echo do_shortcode('[omnivideo video_id="' . intval($atts['id']) . '"]');
    } else {
        echo '<p>Для просмотра видео нужно <a href="' . wp_login_url() . '">войти</a> или <a href="' . site_url('/register') . '">зарегистрироваться</a>.</p>';
    }
    return ob_get_clean();
}
add_shortcode('omni_video_sub', 'omni_video_shortcode_subscription');

Теперь в редакторе WordPress достаточно вставить [omni_video_sub id="123"], чтобы вывести видео с ID 123 с проверкой подписки.

Выводы и рекомендации

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

Обязательно тестируйте работу подписки с разными ролями и устройствами, а также следите за защитой контента от скачивания.

Для расширения функционала можно дополнительно использовать плагин Clearfy Pro для оптимизации и безопасности сайта.

Как создать автоматический видео sitemap в WordPress для SEO
02.02.2026
Как создать автоматические видео-крошки (video breadcrumbs) в WordPress
09.02.2026
Как создать настраиваемый видео плейлист в WordPress
25.11.2025
Как создать автоматический видео каталог в WordPress с использованием OmniVideo
20.02.2026
Как отладить проблемы с видео в WordPress через логирование для разработчиков
23.02.2026