WC_API_Products::save_product_images() protected WC 2.2
Save product images
{} Это метод класса: WC_API_Products{}
Хуков нет.
Возвращает
WC_Product.
Использование
// protected - в коде основоного (родительского) или дочернего класса $result = $this->save_product_images( $product, $images );
- $product(WC_Product) (обязательный)
- -
- $images(массив) (обязательный)
- -
Список изменений
С версии 2.2 | Введена. |
Код WC_API_Products::save_product_images() WC API Products::save product images WC 5.0.0
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;
}