Галерея товару woocommerce

Блог Фрилансера 3 груд. 2018 р.
 Галерея товару woocommerce

 

woocommerce — дуже популярний плагін для wp але для товару немає нормальної галереї. Виправимо це! Якщо є схожі готові рішення, кидайте в коменти.

Lля спрощення завдання будемо використовувати -Advanced Custom Fields pro,він нам для додавання відео.

І бібліотеку JQuery lightSlider.

Створюємо поле з типом «Повторювач» Для того, щоб можна було додавати поля в картці товару . Куди вставлятимемо посилання на відео з Youtube

Відображаємо його тип записів-Товар

.

Далі роботи з шаблоном виводу (для наочності будемо працювати прямо у файлі шаблону) По правильному потрібно весь код винести у function.php.

ID,'_product_image_gallery')[0]);// картинки зі стандартної галереї товару
$video_product = get_field('video_product',$post->ID);// посилання на юту відео acf

$galegy = array();// створюємо масив і додаємо в нього головну картинку товару
$galegy[] = array(
'thumb' =>wp_get_attachment_image_src(get_post_meta( $post->ID,'_thumbnail_id')[0],'slide_product_thumb')[0],
'full' => wp_get_attachment_image_src(get_post_meta( $post->ID,'_thumbnail_id')[0],'slide_product_full')[0],
'type'=> 'photo',
'url'=> ''

);
if ($metas!= ['']){// додаємо картинки з галереї
foreach ($metas as $key) {

$galegy[] = array(
'thumb' => wp_get_attachment_image_src($key,'slide_product_thumb')[0],
'full' => wp_get_attachment_image_src($key,'slide_product_full')[0],
'type'=> 'photo'

);

}
}
if ($video_product != ['']) {// банально перевіряємо чи не порожній масив додаємо в основний масив посилання на відео


foreach ($video_product as $keys) {
preg_match('%(?:youtube(?:-nocookie)??.com/(?:[^/]+/.+/|(?:v|e(?:mbed)?))/|.*[ ?&]v=)|youtu\.be/)([^"&?/ ]{11})%i', $keys['url_video'], $match);
$galegy[] = array(
'thumb' => '//img.youtube.com/vi/'.$match[1].'/mqdefault.jpg',
'full' => '//img.youtube.com/vi/'.$match[1].'/maxresdefault.jpg',
'type'=> 'video',
'url'=> $keys['url_video'],
'id' => $match[1]

);
}

}
//$galegy - масив з картинками та відео 

Далі працюємо з висновком 

 echo '
'; echo ''; echo '
';

 

Ініціалізуємо скрипт. З параметрами функції можна ознайомитися на сайті 


$('#lightSlider').lightSlider({
    галерея: true,
    item: 1,
    loop: true,
    slideMargin: 0,
    thumbItem: 9
});



 

у результаті має вийде ось таке