Диагностика задачи: зачем добавлять видео в описание товара
Видео в карточке товара повышает конверсию и улучшает пользовательский опыт. В WooCommerce часто возникает необходимость автоматически добавлять видео, например, с YouTube, в описание товара или отдельный таб, чтобы не делать это вручную для сотен позиций.
Как проверить, что видео не добавляется
- Откройте страницу товара на фронтенде, проверьте наличие видео.
- Проверьте консоль браузера на ошибки JavaScript.
- Проверьте, что ссылка на видео задана в метаполе или поле товара.
- Убедитесь, что тема и плагины не конфликтуют с выводом контента.
Шаги для автоматического добавления видео в описание товара WooCommerce
1. Добавьте пользовательское поле для ссылки на видео
Можно использовать плагин Advanced Custom Fields (ACF) или добавить метаполе вручную.
function add_video_url_field() {
woocommerce_wp_text_input( array(
'id' => '_video_url',
'label' => __('URL видео (YouTube, Vimeo)', 'woocommerce'),
'placeholder' => 'https://www.youtube.com/watch?v=xxxxxxx',
'desc_tip' => true,
'description' => __('Введите ссылку на видео для автоматического добавления в описание товара.', 'woocommerce'),
'type' => 'url'
) );
}
add_action('woocommerce_product_options_general_product_data', 'add_video_url_field');
function save_video_url_field($post_id) {
$video_url = isset($_POST['_video_url']) ? esc_url_raw($_POST['_video_url']) : '';
update_post_meta($post_id, '_video_url', $video_url);
}
add_action('woocommerce_process_product_meta', 'save_video_url_field');
2. Автоматически вставляйте видео в описание товара
Для вывода видео можно использовать oEmbed WordPress — достаточно передать ссылку на видео через wp_oembed_get().
function add_video_to_product_description($content) {
if (!is_product()) return $content;
global $post;
$video_url = get_post_meta($post->ID, '_video_url', true);
if ($video_url) {
$embed_code = wp_oembed_get($video_url);
if ($embed_code) {
// Добавляем видео в начало описания
$content = $embed_code . $content;
}
}
return $content;
}
add_filter('the_content', 'add_video_to_product_description');
3. Альтернатива: добавление видео в отдельный таб
Чтобы видео не мешало основному описанию, лучше вынести его в отдельный таб на странице товара.
function add_video_product_tab($tabs) {
global $post;
$video_url = get_post_meta($post->ID, '_video_url', true);
if ($video_url) {
$tabs['video_tab'] = array(
'title' => __('Видео', 'woocommerce'),
'priority' => 50,
'callback' => 'video_tab_content'
);
}
return $tabs;
}
add_filter('woocommerce_product_tabs', 'add_video_product_tab');
function video_tab_content() {
global $post;
$video_url = get_post_meta($post->ID, '_video_url', true);
if ($video_url) {
echo wp_oembed_get($video_url);
} else {
echo '<p>' . __('Видео отсутствует.', 'woocommerce') . '</p>';
}
}
Проверка результата
- Сохраните товар с заполненным полем Видео URL.
- Откройте страницу товара на сайте.
- Убедитесь, что видео отображается либо в описании, либо в отдельном табе (зависит от выбранного метода).
- Проверьте корректность отображения на мобильных устройствах.
Частые ошибки и их исправления
- Видео не отображается: проверьте, что ссылка корректна и поддерживается oEmbed WordPress (YouTube, Vimeo и др.).
- Видео вставляется как текст ссылки: убедитесь, что фильтр
the_contentприменяется к описанию товара, а не к кастомному полю. - Видео выводится несколько раз: проверьте, нет ли конфликтов с другими плагинами, которые тоже модифицируют контент.
- Конфликты с темой: некоторые темы переопределяют шаблоны WooCommerce, нужно проверить шаблон single-product.php.
Практические советы по производительности и безопасности
- Используйте только проверенные источники видео, чтобы избежать внедрения вредоносного кода.
- Ограничьте ввод URL через валидацию (
esc_url_rawпри сохранении). - Для ускорения загрузки страниц включите кэширование oEmbed, например, с помощью плагина oEmbed Cache.
- Минимизируйте количество видео на одной странице, чтобы не снижать скорость загрузки.
Сравнение вариантов реализации
| Метод | Плюсы | Минусы | Кодочас |
|---|---|---|---|
| Вставка в описание | Простота, видео сразу видно | Может мешать основному тексту | 15 минут |
| Отдельный таб | Чистый интерфейс, структурированность | Понадобится доработка темы | 30 минут |
| Плагин (например, Video Gallery) | Много функций без кода | Зависимость от стороннего кода, производительность | 5-10 минут настройки |