WordPress at Your Fingertips
function is not described

WC_API_Products::save_product_images() protected WC 2.2

Save product images

{} It's a method of the class: WC_API_Products{}

No Hooks.

Return

WC_Product.

Usage

// protected - for code of main (parent) or child class
$result = $this->save_product_images( $product, $images );
$product(WC_Product) (required)
-
$images(array) (required)
-

Changelog

Since 2.2 Introduced.

Code of WC_API_Products::save_product_images() WC 5.7.1

protected function save_product_images( $product, $images ) {
	if ( is_array( $images ) ) {
		$gallery = array();

		foreach ( $images as $image ) {
			if ( isset( $image['position'] ) && 0 == $image['position'] ) {
				$attachment_id = isset( $image['id'] ) ? absint( $image['id'] ) : 0;

				if ( 0 === $attachment_id && isset( $image['src'] ) ) {
					$upload = $this->upload_product_image( esc_url_raw( $image['src'] ) );

					if ( is_wp_error( $upload ) ) {
						throw new WC_API_Exception( 'woocommerce_api_cannot_upload_product_image', $upload->get_error_message(), 400 );
					}

					$attachment_id = $this->set_product_image_as_attachment( $upload, $product->get_id() );
				}

				$product->set_image_id( $attachment_id );
			} else {
				$attachment_id = isset( $image['id'] ) ? absint( $image['id'] ) : 0;

				if ( 0 === $attachment_id && isset( $image['src'] ) ) {
					$upload = $this->upload_product_image( esc_url_raw( $image['src'] ) );

					if ( is_wp_error( $upload ) ) {
						throw new WC_API_Exception( 'woocommerce_api_cannot_upload_product_image', $upload->get_error_message(), 400 );
					}

					$gallery[] = $this->set_product_image_as_attachment( $upload, $product->get_id() );
				} else {
					$gallery[] = $attachment_id;
				}
			}
		}

		if ( ! empty( $gallery ) ) {
			$product->set_gallery_image_ids( $gallery );
		}
	} else {
		$product->set_image_id( '' );
		$product->set_gallery_image_ids( array() );
	}

	return $product;
}