Так что я не мог понять, как остановить woocommerce от перезаписи всех изображений, когда я хотел добавить одно, поэтому я написал код, который добавляет новое изображение в список изображений.
//GET CURRENT IMAGE IDs FOR A PRODUCT AND BUILD JSON OF THEM
$product_id = '652';
$product = new WC_product($product_id);
$attachment_ids = $product->get_gallery_image_ids();
array_unshift($attachment_ids, get_post_thumbnail_id($product_id));
//BUILD JSON OF EXISTING IMAGE IDS
foreach( $attachment_ids as $attachment_id ) {
$json_images .= '{"id":' . $attachment_id . '}';
$json_images .= ($i<count($attachment_ids) ? ',' : '');
}
echo "<br>" . $json_images;
//POST AN IMAGE TO AN AUCTION
$host = 'https://beta.blohbloh.com/wp-json/wc/v3/products/' . $product_id;
$consumer_key='ck_2364';
$consumer_secret='cs_12ce';
//NEEDS TO INCLUDE ALL PREVIOUS IMAGE IDS IN JSON FORMAT
$payload = '{"images": [';
$payload .= $json_images;
$payload .= '{"src":';
//sample image to append
$payload .= '"https://somesite.com/someimage.jpg"';
$payload .= '}]}';
$process = curl_init($host);
curl_setopt($process, CURLOPT_HTTPHEADER, array('Content-Type: application/json', $additionalHeaders));
curl_setopt($process, CURLOPT_HEADER, 1);
curl_setopt($process, CURLOPT_USERPWD, $consumer_key . ":" . $consumer_secret);
curl_setopt($process, CURLOPT_TIMEOUT, 30);
//curl_setopt($process, CURLOPT_POST, 1);
//curl_setopt($process, CURLOPT_POSTFIELDS, $payload);
curl_setopt($process, CURLOPT_CUSTOMREQUEST, "PUT");
curl_setopt($process, CURLOPT_POSTFIELDS,$payload);
curl_setopt($process, CURLOPT_RETURNTRANSFER, TRUE);
$return = curl_exec($process);
curl_close($process);