I want to add some extra images to the product gallery. Based on a meta field from a different post. The images should only add to the gallery in the frontend. Not to the image gallery of the product itself.
EDIT: @mujuonly was right. I could use woocommerce_product_thumbnails
and so I tried the following code and everything works fine:
<?php
add_action( 'woocommerce_product_thumbnails', 'custom_product_add_thumbnails', 100, 0 );
function custom_product_add_thumbnails(){
$extra_gallery = get_field( 'some_field' );
if( $extra_gallery ): ?>
<?php foreach ( $extra_gallery as $image_id ): ?>
<div class="woocommerce-product-gallery__image">
<?php echo wp_get_attachment_image( $image_id, 'woocommerce_single', false, array( "class" => "" ) ); ?>
</div>
<?php endforeach; ?>
<?php endif;
endif;
}
With 100
in the action the images are shown at the end of the gallery:
add_action( 'woocommerce_product_thumbnails', 'custom_product_add_thumbnails', 100, 0 );
My Answer:
php
add_filter('woocommerce_product_thumbnails', 'add_extra_images_to_gallery');
function add_extra_images_to_gallery($thumbnails) {
global $product;
// Get the meta field value from a different post
$meta_value = get_post_meta($product->get_id(), 'meta_field_name', true);
// Check if meta field value is not empty
if (!empty($meta_value)) {
// Get the extra images based on the meta field value
$extra_images = get_extra_images($meta_value);
// Add the extra images to the thumbnails array
foreach ($extra_images as $image) {
$thumbnails[] = '
';
}
}
return $thumbnails;
}
function get_extra_images($meta_value) {
// Add your logic here to get the extra images based on the meta field value
// For example, you can query the database or use a custom function
// Return an array of extra images
return array(
'image1.jpg',
'image2.jpg',
'image3.jpg'
);
}
This code adds extra images to the product gallery based on a meta field value from a different post. The `add_extra_images_to_gallery` function hooks into the `woocommerce_product_thumbnails` filter and adds the extra images to the thumbnails array. The `get_extra_images` function can be customized to fetch the extra images based on the meta field value.
Rate this post
5 of 5 based on 1121 votesComments