WC_API_Products::get_images()
Get the images for a product or product variation
Method of the class: WC_API_Products{}
No Hooks.
Return
Array
.
Usage
// private - for code of main (parent) class only $result = $this->get_images( $product );
- $product(WC_Product|WC_Product_Variation) (required)
- -
Changelog
Since 2.1 | Introduced. |
WC_API_Products::get_images() WC API Products::get images code WC 8.7.0
private function get_images( $product ) { $images = $attachment_ids = array(); $product_image = $product->get_image_id(); // Add featured image. if ( ! empty( $product_image ) ) { $attachment_ids[] = $product_image; } // Add gallery images. $attachment_ids = array_merge( $attachment_ids, $product->get_gallery_image_ids() ); // Build image data. foreach ( $attachment_ids as $position => $attachment_id ) { $attachment_post = get_post( $attachment_id ); if ( is_null( $attachment_post ) ) { continue; } $attachment = wp_get_attachment_image_src( $attachment_id, 'full' ); if ( ! is_array( $attachment ) ) { continue; } $images[] = array( 'id' => (int) $attachment_id, 'created_at' => $this->server->format_datetime( $attachment_post->post_date_gmt ), 'updated_at' => $this->server->format_datetime( $attachment_post->post_modified_gmt ), 'src' => current( $attachment ), 'title' => get_the_title( $attachment_id ), 'alt' => get_post_meta( $attachment_id, '_wp_attachment_image_alt', true ), 'position' => (int) $position, ); } // Set a placeholder image if the product has no images set. if ( empty( $images ) ) { $images[] = array( 'id' => 0, 'created_at' => $this->server->format_datetime( time() ), // Default to now. 'updated_at' => $this->server->format_datetime( time() ), 'src' => wc_placeholder_img_src(), 'title' => __( 'Placeholder', 'woocommerce' ), 'alt' => __( 'Placeholder', 'woocommerce' ), 'position' => 0, ); } return $images; }