Получение изображений галереи из товаров в WooCommerce
20 авг. 2017 г., 09:54:26
Просмотры: 47.2K
Голосов: 10
Ищу код, который мог бы помочь мне получить список изображений галереи, присутствующих в товаре WooCommerce.
Они нужны мне для использования в пользовательском дизайне отдельной страницы товара WooCommerce.

Shahzaib Khan
134
Все ответы на вопрос
3
3
<?php
$product_id = '14';
$product = new WC_product($product_id);
$attachment_ids = $product->get_gallery_image_ids();
foreach( $attachment_ids as $attachment_id )
{
// Отображаем URL изображения
echo $Original_image_url = wp_get_attachment_url( $attachment_id );
// Отображаем само изображение вместо URL
echo wp_get_attachment_image($attachment_id, 'full');
}?>

Md.Mehedi hasan
321
1 дек. 2019 г. 22:19:31
0
Метод get_gallery_image_ids()
объекта товара вернет массив идентификаторов изображений.
global $product;
$gallery_images = $product->get_gallery_image_ids();
Затем для каждого ID можно использовать функции типа wp_get_attachment_image()
для получения HTML/URL и т.д.

Jacob Peattie
43.9K
20 авг. 2017 г. 11:35:48
0
Это полная функция, если вам нужны все изображения из галереи, включая основное изображение:
public function getAllProducts( $request ){
$products = new WP_Query([
'post_type' => 'post'//,
//'show_product_on_only_premium' => 'yes',
]);
$args = array(
'status' => 'publish',
);
$products = wc_get_products( $args );
$tempArr = [];
foreach($products as $product){
$product_obj = json_decode($product-> __toString());
$product_obj->img_src = wp_get_attachment_image_src($product_obj->image_id)[0];
$images_ids = $product-> get_gallery_image_ids();
$images_arr = [];
for($i = 0, $j = count($images_ids); $i < $j;$i++ ){
$image_query = wp_get_attachment_image_src($images_ids[$i]);
$img = new StdClass;
$img->src = $image_query[0];
array_push($images_arr, $img);
}
$product_obj->gallery = $images_arr;
array_push($tempArr, $product_obj);
}
return $tempArr;
}
А если вам нужны вариации: из: https://gist.github.com/Niloys7/17b88d36c1c38844a6cf2127c15dee63
<?php
global $product;
$attachment_ids = $product->get_gallery_attachment_ids();
foreach( $attachment_ids as $attachment_id )
{
//Получаем URL изображений галереи - стандартные размеры изображений WordPress
echo $Original_image_url = wp_get_attachment_url( $attachment_id );
echo $full_url = wp_get_attachment_image_src( $attachment_id, 'full' )[0];
echo $medium_url = wp_get_attachment_image_src( $attachment_id, 'medium' )[0];
echo $thumbnail_url = wp_get_attachment_image_src( $attachment_id, 'thumbnail' )[0];
//Получаем URL изображений галереи - специфичные размеры изображений WooCommerce
echo $shop_thumbnail_image_url = wp_get_attachment_image_src( $attachment_id, 'shop_thumbnail' )[0];
echo $shop_catalog_image_url = wp_get_attachment_image_src( $attachment_id, 'shop_catalog' )[0];
echo $shop_single_image_url = wp_get_attachment_image_src( $attachment_id, 'shop_single' )[0];
//Выводим изображение вместо URL
echo wp_get_attachment_image($attachment_id, 'full');
echo wp_get_attachment_image($attachment_id, 'medium');
echo wp_get_attachment_image($attachment_id, 'thumbnail');
echo wp_get_attachment_image($attachment_id, 'shop_thumbnail');
echo wp_get_attachment_image($attachment_id, 'shop_catalog');
echo wp_get_attachment_image($attachment_id, 'shop_single');
}
?>

user91030
161
14 авг. 2018 г. 02:33:32
Похожие вопросы
1
ответов
5
ответов